No.1ベストアンサー
- 回答日時:
>1つ目のファイルは開くのですが、後のファイルがエラーになってしまいます。
>・・・もしわかりましたら、是非教えてください。
エラー原因なら・・・内容がわからないので、分からないとしかいいようがありませんが・・・
質問にあるような状態で、不特定の複数Bookを開くようにコードを書いてみました。参考にして下さい。
下のコードは、A1にフォルダ名がセットされていて、B列にB1から不特定数(>0)のファイル名が連続にセットされている例です。ファイルが存在しない場合などのエラー処理は省略しています
Sub xlsFilesOpen()
Dim myFolder As String '共通のフォルダ名
Dim rw As Long '行カウンタ
Dim ThisBookname As String 'このブック名
ThisBookname = ThisWorkbook.Name
myFolder = Range("A1")
If Right(myFolder, 1) <> "\" Then myFolder = myFolder & "\"
With Range("B1")
'ファイル名が登録されていれば開く
While .Offset(rw, 0) <> ""
'Bookを開く
Workbooks.Open myFolder & .Offset(rw, 0)
'次のセル(B列の次の行になる)
rw = rw + 1
Wend
End With
'最初のBookを表示しているだけです
Workbooks(ThisBookname).Activate
End Sub
できました!!
while~Wend 本で探せませんでした。
これからも活用できそうです。
ありがとうございました。ほんとに勉強になりました。
ここでちょっと質問なのですが、Ifに対してもEnd Ifがなくてなぜエラーがでないのでしょうか?
No.2
- 回答日時:
>ここでちょっと質問なのですが、
>Ifに対してもEnd Ifがなくてなぜエラーがでないのでしょうか?
If~Then~Else ステートメントの書き方については、VBAのヘルプを見ると、
『条件が真 (True) の場合のステートメントの実行
条件が真 (True) の場合に 1 つのステートメントだけを実行するときは、
If...Then...Else ステートメントの1行の構文を使います。
次の例は、キーワードElseを省略した1行の構文を示しています。
Sub FixDate()
myDate = #95/2/13#
If myDate < Now Then myDate = Now
End Sub 』
とあります。
条件が成立した時、1つのことだけを行う場合にこう書けます。
X = a: If y < 0 Then x = b
のような使い方をして行が長くならないようにしています。癖かもしれません。
>while~Wend 本で探せませんでした。
>これからも活用できそうです。
while~Wendは少し古い書き方かもしれません。
Do~Loopでも当然できます。こちらをマスターしたほうがいいかもしれません。
個人的にはwhile~Wendの方がなれているのでこちらを使うことが多いです。
Do~Loop についても、Help等でみて下さい。
Do~Loop例:B1~B3に何か入力しておいて実行してみて下さい。最初の回答と同じような意味合いです。
Sub DoLoopTest()
Dim rw As Long
With Range("B1")
Do Until .Offset(rw, 0) = ""
MsgBox "セル" & .Offset(rw, 0).Address & "の値は" & .Offset(rw, 0)
rw = rw + 1
Loop
End With
MsgBox "おしまい"
End Sub
丁寧な回答ありがとうございます。
仕事で初めてVBAをやり出し、聞く人もいなく本だけを見て作っているので、
これが本当に正しいのか?など不安になる事が多く、今回質問をして、
回答頂き、とても嬉しく思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OneDrive内にある「個人用 Vaul...
-
Excelを開くとエラーが出る
-
エクセルのマクロが記録できない
-
pdfが開けません
-
RBFファイルとは?
-
WMPにおいてネットワークに接続...
-
FFFTPにて特定のフォルダのみ制...
-
パワーポイントが「アウトライ...
-
たまに青画面になります・・D...
-
パソコンの立ち上げ時のエラー表示
-
ディスククリーンアップで削除...
-
Excelで「条件付き書式」をクリ...
-
『Inetpub』というファイルがあ...
-
デスクトップにあるPDFを削除で...
-
エクセルのファイルを名前を変...
-
削除したフォルダが勝手に復活する
-
フォルダの上書きについて
-
「SmartByte Drivers and Servi...
-
外付ハードディスクにソフトを...
-
【windows11】勝手にTikTokがイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
OneDrive内にある「個人用 Vaul...
-
Excelを開くとエラーが出る
-
エクセルのマクロが記録できない
-
pdfが開けません
-
最近、パソコンを起動するとこ...
-
RBFファイルとは?
-
Word・Excelで文字は入力できる...
-
エクセルを立ち上げるとVBA関係...
-
Word:どの表が「壊れている」...
-
パソコンの立ち上げ時のエラー表示
-
PC起動時にRUNDLLというエラーが
-
2010outlook 不調です
-
Excelで「条件付き書式」をクリ...
-
chkdsk
-
ACCESSで 実行時エラー2114 ...
-
ディスククリーンアップで削除...
-
データ エラー (巡回冗長検査 (...
-
logファイルってどんなファイル...
-
エクセルでリソース不足???
-
パワーポイントが「アウトライ...
おすすめ情報