Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1 / 3688 ページ 前へ→

【79394】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/14(木) 19:21 -

引用なし
パスワード
   ▼けい さん:

>丸投げで投稿してしまって申し訳ないです。

エラーがでるコードでもよかったのに…
それを提示してくれるだけで印象がかわります。

-----

>もしアクティブ行b列が

ということであれば、これでできます。

Option Explicit


Sub test2()
  Dim 名前 As String
  Dim 元データ As Range
  Dim 転記先 As Range
 
  Set 元データ = ActiveCell.EntireRow
    
  名前 = 元データ.Range("B1").Value '★
  
  Set 転記先 = Sheets(名前).Range("A" & Rows.Count).End(xlUp).Offset(1)
 
  元データ.Copy 転記先
  元データ.Delete

End Sub


------

ただし、もしその名前のシートが存在しないとエラーで止まっちゃうので
実際に使うとすると、そうならないように対策が必要です。
・ツリー全体表示

【79393】Re:選択行を条件付けて転記(切取・貼付)
お礼  けい  - 17/9/14(木) 17:08 -

引用なし
パスワード
   マナさん
返信をありがとうございます。このサイトを見つけ慌てて投稿してしまいましたが、サイトの基本方針を後で見て、丸投げで投稿してしまって申し訳ないです。
全くの初心者でIF〜やselect caseなど片端から入れてみましたが、そもそもの構文の基本も分からないので、今は急ぎ必要だったこともあり、マナさんから回答頂いたコードを使い、氏名一人に1つのコードで作成して、(氏名(シート)は5人(枚)あるので)5つのコードを各コマンドボタンに貼り付けようと思います。
そちらでうまくいきましたので、使わせて頂きます。
本当に助かりました。ありがとうございました!!
条件分岐はもう少し勉強してから自力で頑張りたいと思います。
m(_ _)m
・ツリー全体表示

【79392】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/13(水) 21:59 -

引用なし
パスワード
   ▼けい さん:

>自分でif〜then elsef endifを挿入して作成してみたのですがすまくいかず。。

そのコードを教えてください。
・ツリー全体表示

【79391】Re:選択行を条件付けて転記(切取・貼付)
質問  けい  - 17/9/13(水) 12:52 -

引用なし
パスワード
   マナさん
さっそくのご回答、ありがとうございます!!
ひとつ巧くいかない点があり、申し訳ありませんが教えて頂ければと思います。

サンプルデータを作成してマクロの実行をしたのですが、「もしアクティブ行b列が『田中だったら』『鈴木だったら』」「『田中or鈴木』シートに」という条件分岐(?)がうまくいきません。自分でif〜then elsef endifを挿入して作成してみたのですがすまくいかず。。
すみませんよろしくお願いします。
(質問のシート名「佐藤」は間違いですすみません)
・ツリー全体表示

【79390】Re:CSVファイルを読み込み書き換えする方...
発言  γ  - 17/9/13(水) 7:33 -

引用なし
パスワード
   不明な点を明確にして質問して下さい。
テキストファイル(CSVファイル)を直接読み込んだり、書き込んだりする部分ですか?
それともCSVファイルの一行の文字列の置換部分ですか?
少なくとも、2,3行程度の処理前と処理後のサンプルを提示するとよいでしょう。
お互いの誤解を招くことがありません。

ファイルの読み書きは
Open ステートメント
Line Input # ステートメント
Print # ステートメント
などを使います。
ヘルプを参照してください。

文字列の置換は Replace関数です。
他の関数と組み合わせると対応可能なはずです。
・ツリー全体表示

【79389】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/12(火) 18:57 -

引用なし
パスワード
   ▼けい さん:
参考コードです。

Option Explicit

Sub test()
  Dim 名前 As String
  Dim 元データ As Range
  Dim 転記先 As Range
  
  名前 = "鈴木"
  
  Set 元データ = ActiveCell.EntireRow
  Set 転記先 = Sheets(名前).Range("A" & Rows.Count).End(xlUp).Offset(1)
  
  元データ.Copy 転記先
  元データ.Delete

End Sub
・ツリー全体表示

【79388】選択行を条件付けて転記(切取・貼付)
質問  けい  - 17/9/12(火) 18:01 -

引用なし
パスワード
   よろしくお願いします。vbaは殆ど分からず、職場で必要に迫られ作成中です。
例ですが、sheet1に一覧表(a1/b1/c1にそれぞれ日付/氏名/内容の項目があり、2行目からデータ)があります。b1には「鈴木」「田中」の名前が入っています。シートは3枚(「sheet1」「鈴木」「佐藤」)あり、プロジェクト終了後にsheet1の終了した行を選択したら、b列の名前を判断して、該当する名前のシートに切り取り→貼付(各シートの最終行に)したいと思ってます。
マクロでやりたいことは、アクティブな行を選択した上で、その後の転記と、元の行削除をしたいのですが、どのようなコードになるのか教えて頂きたいです。
・ツリー全体表示

【79387】Re:CSVファイルを読み込み書き換えする方...
発言  γ  - 17/9/11(月) 20:01 -

引用なし
パスワード
   ▼ねこ さん:
>・「,(カンマ)」で登録されているものをすべて「","」に書き換える
ということは、セパレータとしてのカンマはやめるということですか?
それともセパレータの前後に"を付けると言う意味ですか?

また、
>・「,(カンマ)」で登録されているものをすべて「","」に書き換える
であるなら、
>・「T,」「D,」「H,」
は、
「T","」「D","」「H","」になっているはずですが、
>「T,"」「D,"」「H,"」に書き換える
との関係はどうなっていますか?
・ツリー全体表示

【79386】Re:特定セルだけオートコンプリート無効化
お礼  りった  - 17/9/11(月) 18:25 -

引用なし
パスワード
   >でしたら、そのブックを閉じるときに元に戻せばよいのでは?
なるほど。閉じるときにマクロを動かせるんですね。
やってみたら、まずは問題なく動いてそうです。
(EXCELLが落ちたらだめなんでしょうが。。。)

ありがとうございました。
・ツリー全体表示

【79385】CSVファイルを読み込み書き換えする方法
質問  ねこ  - 17/9/11(月) 15:38 -

引用なし
パスワード
   現在、CSVファイルを読み込み
・「,(カンマ)」で登録されているものをすべて「","」に書き換える
・「T,」「D,」「H,」を「T,"」「D,"」「H,"」に書き換える
・全ての行末尾に「,(カンマ)」を追加する。

という処理を一度のVBAで行い、再度CSVに書き込みを行おうとしておりますが
上手くいきません。(勉強不足ですみません。。)

どなたか一度の処理にはこだわりませんので、お知恵をお貸しいただけないでしょ
うか?

よろしくお願いいたします。
・ツリー全体表示

【79384】Re:vbaを利用したgooglemapのルート取得
お礼  おむすび  - 17/9/11(月) 14:03 -

引用なし
パスワード
   ▼Jaka さん:
>IEなどやったことが無いので、探してみた
>ボタンクリックってのがあっただけで内容は全く解りません。
>
>VBAによるIE自動制御
>
>htt p://vba-code.net/ie/click-a-button/
>
>役に立てなくてすみません。


ボタン制御などはわかるのですが、
グーグルマップにボタンがないんですよね・・・
他の方法を検討します。

ご協力ありがとうございました。
・ツリー全体表示

【79383】Re:Sheetコピー後に1列分の文字をSheet名...
お礼  マリモ  - 17/9/11(月) 12:50 -

引用なし
パスワード
   マナ様

解決いたしました。

ご教示くださいまして
ありがとうございました。
・ツリー全体表示

【79382】Re:ドラプラから高速料金取得
発言  γ  - 17/9/9(土) 9:33 -

引用なし
パスワード
   WebAPIのような、必要事項をURIに入れてリスクスト発行する
スタイルのものと違い、
こうしたインタラクティブな入力作業を求めるようなスタイルを
VBAで対応しようとするのはとても手間がかかる。

住所を必要な区分に分離するのも一苦労するだろうし、
住所からICを指定するところも複数選択肢があり判断が必要となる。

結局のところ、こうしたものは貴君が手作業で行うのが一番速いだろうと思う。
大量の作業がある業務上のことなら、外部に発注してください。

何よりも、自分がどこまでトライしたかも書かずに、
人に作業させようという考えは歓迎されません。

可能かどうか尋ねているだけというなら、
可能、ただし簡単ではないだろう、とだけ申し上げる。
・ツリー全体表示

【79381】Re:Sheetコピー後に1列分の文字をSheet名...
発言  マナ  - 17/9/8(金) 19:42 -

引用なし
パスワード
   ▼マリモ さん:

記録されたマクロは、こんな感じで書き換えることができます。
これをA1からA177まで繰り返すように修正してみてください。

-----

Sub demo1()

  Sheets("元").Copy Before:=Sheets(3)
  Sheets("元 (2)").Name = Sheets("Sheet1").Range("A1").Value '"りんご"

  Sheets("元").Copy Before:=Sheets(4)
  Sheets("元 (2)").Name = Sheets("Sheet1").Range("A2").Value '"ブドウ"

  Sheets("元").Copy Before:=Sheets(5)
  Sheets("元 (2)").Name = Sheets("Sheet1").Range("A3").Value ' "なし"

  Sheets("元").Copy Before:=Sheets(6)
  Sheets("元 (2)").Name = Sheets("Sheet1").Range("A4").Value ' "いちじく"
  
  Sheets("元").Copy Before:=Sheets(7)
  Sheets("元 (2)").Name = Sheets("Sheet1").Range("A5").Value '"かき"

End Sub


-----

このあたりを勉強するとよいです。

シートをコピーする 
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_sheet.html#copy

繰り返し処理
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_for_next.html
・ツリー全体表示

【79380】ドラプラから高速料金取得
質問  るり  - 17/9/8(金) 18:39 -

引用なし
パスワード
   ExcelVBAからドラぷらを使用して高速料金を取得したい。

a1に会社の住所。
a2以降に到着の住所が入力されています。

b列にドラぷらを利用して高速料金を取得したいのですが可能でしょうか。

よろしくお願いします。
・ツリー全体表示

【79379】Re:特定セルだけオートコンプリート無効化
発言  マナ  - 17/9/8(金) 18:38 -

引用なし
パスワード
   ▼りった さん:

>「オートコンプリート無効にしたセルにカーソルが当たった状態でエクセルを閉じる」
>と、オートコンプリート無効になるのではないかと思います。
>(実験未)

でしたら、そのブックを閉じるときに元に戻せばよいのでは?
・ツリー全体表示

【79377】Re:特定セルだけオートコンプリート無効化
質問  りった  - 17/9/8(金) 16:59 -

引用なし
パスワード
   返信ありがとうございます。返信遅くなりました。済みません。

>>操作によってはOFFのままになってしまいそうです。
>例えばどんな操作が想定されますか?
「オートコンプリート無効にしたセルにカーソルが当たった状態でエクセルを閉じる」
と、オートコンプリート無効になるのではないかと思います。
(実験未)
・ツリー全体表示

【79376】Re:Sheetコピー後に1列分の文字をSheet名...
質問  マリモ  - 17/9/8(金) 9:20 -

引用なし
パスワード
   マナ様

ご助言
ありがとうございます。

「マクロの記録」の結果は下記の通りでございます。
------------------------------------------------
Sub demo1()
'
' demo1 Macro
'

'
  Sheets("元").Copy Before:=Sheets(3)
  Sheets("Sheet1").Select
  Range("A1").Select
  Selection.Copy
  Sheets("元 (2)").Select
  Sheets("元 (2)").Name = "りんご"
  Sheets("元").Select
  Application.CutCopyMode = False
  Sheets("元").Copy Before:=Sheets(4)
  Sheets("Sheet1").Select
  Range("A2").Select
  Selection.Copy
  Sheets("元 (2)").Select
  Sheets("元 (2)").Name = "ブドウ"
  Sheets("元").Select
  Application.CutCopyMode = False
  Sheets("元").Copy Before:=Sheets(5)
  Sheets("Sheet1").Select
  Range("A3").Select
  Selection.Copy
  Sheets("元 (2)").Select
  Sheets("元 (2)").Name = "なし"
  Sheets("元").Select
  Application.CutCopyMode = False
  Sheets("元").Copy Before:=Sheets(6)
  Sheets("Sheet1").Select
  Range("A4").Select
  Selection.Copy
  Sheets("元 (2)").Select
  Sheets("元 (2)").Name = "いちじく"
  Sheets("元").Select
  Application.CutCopyMode = False
  Sheets("元").Copy Before:=Sheets(7)
  Sheets("Sheet1").Select
  Range("A5").Select
  Selection.Copy
  Sheets("元 (2)").Select
  Application.Width = 999.75
  Application.Height = 387
  Application.Left = 355
  Application.Top = 300.25
  Application.Width = 1088.25
  Application.Height = 387
  Sheets("元 (2)").Name = "かき"
  Range("L7").Select
End Sub
------------------------------------------------

上記の工程をループをつかってスマートにできないか
考えております。
ちなみにSheet1のA列の行は177行ございます。

よろしくお願いいたします。
・ツリー全体表示

【79375】Re:vbaを利用したgooglemapのルート取得
発言  Jaka  - 17/9/7(木) 18:02 -

引用なし
パスワード
   IEなどやったことが無いので、探してみた
ボタンクリックってのがあっただけで内容は全く解りません。

VBAによるIE自動制御

htt p://vba-code.net/ie/click-a-button/

役に立てなくてすみません。
・ツリー全体表示

【79374】Re:Sheetコピー後に1列分の文字をSheet名...
発言  マナ  - 17/9/7(木) 17:10 -

引用なし
パスワード
   ▼マリモ さん:

まずは「マクロの記録」で
シートのコピーとシートの名前変更
について調べるところから
はじめてはいかがでしょうか。
・ツリー全体表示

1 / 3688 ページ 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free