• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vbaで複数のパターンのファイル名を読み込みたい)

VBAで複数のパターンのファイル名を読み込む方法

このQ&Aのポイント
  • VBAを使用して、複数のパターンのファイル名を読み込む方法を探しています。写真のファイル名のパターンが異なる場合でも対応できる方法を知りたいです。
  • C言語のように#defineによる置き換えができれば、一か所のみ修正すれば対応できると便利だと思いますが、VBAでは#defineに相当する機能がないようです。
  • プログラム全体を修正せずにファイル名のパターンを変更できる方法を知りたいです。if文で分岐させる方法は最終手段として考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

Option Explicit Const ptn = "ji" Sub test()   Dim a As Long   Dim b As Long   Dim sa As String   Dim sb As String      For a = 1 To 2     sa = Replace$(ptn, "j", CStr(a))     If InStr(ptn, "i") = 0 Then       MsgBox ActiveWorkbook.Path & "\" & sa & ".jpg"     Else       For b = 1 To 2         sb = Replace$(sa, "i", CStr(b))         MsgBox ActiveWorkbook.Path & "\" & sb & ".jpg"       Next     End If     If InStr(ptn, "j") = 0 Then Exit For   Next End Sub こんな感じですね。 または、A1セルに入力されたパターンを読み込ませるなら Option Explicit Sub test()   Dim a  As Long   Dim b  As Long   Dim sa As String   Dim sb As String   Dim ptn As String      ptn = Range("A1").Value   For a = 1 To 2   : という感じ。 いずれにしても、パターンを文字列型変数に設定して ループカウンタと置き換えてあげれば良いかと思います。

iori16
質問者

お礼

これは凄い。 まさに、パーフェクトな答えです。 知らない関数がいくつか見られたので調べて理解してみようと思います。 ありがとうございました

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> ActiveSheet.Pictures.Insert(ActiveWorkbook.Path & _ > j & i & ".jpg").Select 結局のところ、ここのパターンを代えるだけでしょ? 事前に"ファイル名"を生成する部分を追加し、変数に格納(Ex:strFileName) する(=IFかSelectCase文)しか無いのでは? ActiveSheet.Pictures.Insert(ActiveWorkbook.Path & _ strFileName).Select

iori16
質問者

お礼

回答ありがとうございます。 そういうのも考えたんですが、strFileName=j-i と置くと "(パス名)\j-i.jpg"という感じに読み込まれてしまって上手くいきませんでした。 ハッ for文の中に strFileName=j & "-" & i  と入れれば良かったのか・・・ 今気づきました。申し訳ありません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

> これをvbaで記述すると j & i & ".jpg" となります(1の位と10の位の数字は独立していると考えてください) 何のことだか、わからない。初心者的発想では。 ファイル名は (1)普通フルで入力させる (2)文字列的にリストから選択させる (3)今までにに作ったファイル名もあわせて掲示し、ダイアロウグで表示して入力させる。 などが多い。 ーー たとえファイル名が2つの意味的な部分に分かれているにしても、2つを分けて入力させて合成などするのは 使う人が困惑するのでは。 文字部+番号部の番号部ぐらいは新しい数字文字を案内することはあっても良いかも。 >、プログラムわからない人には読み込ませることすらできないです なんていっているが、この質問が、珍奇な発想では。 実際に回りにいる人に実例(コードではない)を示してどれが、素直に判りやすいか聞いてみたら。 こんな質問コーナーに質問するよりよほど大切な態度だと思う。

iori16
質問者

お礼

確かに、自分のやっていることは分かりづらいものでしたね・・・ 他人に使わせるとしたら、分かりづらかったです。 素直に、周りの人にどんな感じがいいか聞いてみます。 実際上司にも、連番で入力することは少ないんじゃないかって言われました。

関連するQ&A