Excel VBA質問箱 IV

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

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


8 / 13113 ツリー ←次へ | 前へ→

【79775】VBA初心者です。ブック間の列コピーを繰り返す方法について atori 18/4/10(火) 15:08 質問[未読]

【79801】Re:VBA初心者です。ブック間の列コピーを繰... マナ 18/4/16(月) 20:04 発言[未読]
【79803】Re:VBA初心者です。ブック間の列コピーを繰... atori 18/4/17(火) 10:43 お礼[未読]
【79808】Re:VBA初心者です。ブック間の列コピーを繰... マナ 18/4/17(火) 19:00 発言[未読]
【79817】Re:VBA初心者です。ブック間の列コピーを繰... atori 18/4/18(水) 16:11 お礼[未読]

【79801】Re:VBA初心者です。ブック間の列コピーを...
発言  マナ  - 18/4/16(月) 20:04 -

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

1)ブックの存在確認の記述位置を変更しました。
2)保存先フォルダの記述方法を変更しました。
www.moug.net/tech/exvba/0060052.html


  Set wsx = ThisWorkbook.Worksheets("Sheet1")
  
  myPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\exam\"

  For k = 1 To 999
    myF = myPath & k & ".xlsx"
    If Dir(myF) = "" Then Exit For
    
    Set wb = Workbooks.Open(myF)
    wsx.Columns(k + 1).Value = wb.Worksheets("Sheet1").Columns(2).Value
    wb.Close False

  Next k

【79803】Re:VBA初心者です。ブック間の列コピーを...
お礼  atori  - 18/4/17(火) 10:43 -

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

>1)ブックの存在確認の記述位置を変更しました。
>2)保存先フォルダの記述方法を変更しました。
>www.moug.net/tech/exvba/0060052.html

ありがとうございます!CreateObjectっていう手もあるんですね…

初めは至らぬところばかりでしたが、判りやすいご指導のおかげでマクロの作成だけではなくやっていることを理解するところまで行けました…!
最初に教えてくださったのがマナさんで良かったと思います、、、本当にありがとうございます(#^^#)

【79808】Re:VBA初心者です。ブック間の列コピーを...
発言  マナ  - 18/4/17(火) 19:00 -

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


>ここから、kをある程度大きな数字にして

わたしは、全く気にしないのですが
もし、気になるなら、

>For k = 1 To 999

でなく、Do〜Loopを使う方法もあります。
ちゃんと、ループを抜ける条件を設定しないと
無限ループになり、マクロが終わらなくなるので
わたしは、For〜Nextを多用しています。

Do
  k = k + 1
  myF = myPath & k & ".xlsx"
  If Dir(myF) = "" Then Exit Do
  
  省略

Loop

【79817】Re:VBA初心者です。ブック間の列コピーを...
お礼  atori  - 18/4/18(水) 16:11 -

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

>>For k = 1 To 999
>
>でなく、Do〜Loopを使う方法もあります。

kがはっきりしない場合だと見た目(?)としてはこっちのほうが良さそうですね、、、
でも確かに汎用性で考えるとFor使っておいたほうが安心みたいなところもありますね。ありがとうございます!

8 / 13113 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free