Excel VBA質問箱 IV

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

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


40633 / 76732 ←次へ | 前へ→

【41194】Re:フォルダの表示
回答  Kein  - 06/8/1(火) 17:33 -

引用なし
パスワード
   もっと具体的な説明をしないと回答しずらいですが、ポイントになる
ところをアドバイスしますと・・
>同じフォルダ内の複数のファイルを開く方法
全てのファイルを順番に開いていくなら、Dir関数で "" を返すまでループする
という方法があります。これは過去ログにもたくさんあるので、検索してみて
下さい。また、任意の複数選択したファイルを処理する場合は、GetOpenFilename
で引数の MultiSelect に True を渡します。出てきたダイアログで、Ctrlキー
を押しながら選択していって、最後に OKボタン を押します。戻り値はファイルの
フルパスが配列で格納されるので、受ける変数は Variant型 で宣言します。
この処理のコードも過去ログにあるはずです。
>翌月になったら、違う"9月"というフォルダを作り
「本日の月のフォルダー」について、作成と存在チェックをするコードは、

Dim MyFol As String

MyFol = Application.DefaultFilePath & "\" & Month(Date) & "月"
If Dir(MyFol, vbDirectory) = "" Then
  MkDir MyFol
Else
  MsgBox Month(Date) & "月 のフォルダーは作成済みです", 48
End If

などとなります。他にFSOを使うコードもあります。どちらかと言うと
FSOの方が確実性が高いかも知れませんが、いちおうこのようなコード
でも間違いはないと思います。
>ファイルを指定するのではなく、フォルダを指定して
フォルダーを選ぶダイアログを出すことも出来ますが、上で回答している
ように「フォルダーの存在が確認できたら」ストレートにそのフォルダー
を開けるようにした方が便利なはずです。そのコードは

Dim MyF As Variant
Dim MyFol As String
Dim i As Integer

MyFol = Application.DefaultFilePath & "\" & Month(Date) & "月"
If Dir(MyFol, vbDirectory) = "" Then
  MkDir MyFol
Else
  ChDir MyFol
  MyF = Application _
  .GetOpenFilename("Excelブック(*.xls),*.xls", , , , True)
  If VarType(MyF) = 11 Then Exit Sub
  For i = LBound(MyF) To UBound(MyF)
   Debug.Print Dir(MyF(i))
   ' ↑テスト用にイミディエイトウィンドウへファイル名を出力する
  Next i
End If

てな感じになるでしょう。

0 hits

【41186】フォルダの表示 りんた 06/8/1(火) 16:48 質問
【41191】Re:フォルダの表示 かみちゃん 06/8/1(火) 17:09 発言
【41195】Re:フォルダの表示 りんた 06/8/1(火) 17:34 質問
【41199】Re:フォルダの表示 かみちゃん 06/8/1(火) 18:07 発言
【41193】Re:フォルダの表示 かみちゃん 06/8/1(火) 17:15 発言
【41194】Re:フォルダの表示 Kein 06/8/1(火) 17:33 回答
【41202】Re:フォルダの表示 りんた 06/8/1(火) 18:21 お礼

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