- ベストアンサー
ExcelVBAの使い方とパス名取得の方法
- ExcelVBAを使用して特定のパス名を取得する方法の質問です。提供されたコードの最後の部分で、パス名の中の¥が正しく機能していないため、画像が正しく貼り付けられません。フルパスを作成するための正しい方法についてのアドバイスをお願いします。
- ExcelVBAを使用してパス名を取得する方法に関する質問です。提供されたコードの一部で、パス名の中の¥を正しく扱う方法がわかりません。フルパスを作成するための助言をお願いします。
- ExcelVBAの使い方とパス名取得の方法についての質問です。提供されたコードでは、パス名の中の¥が適切に使用されず、画像が正しく挿入されません。パス名を正しく結合してフルパスを作成する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
『¥の使い方』というより、変数と文字列の繋ぎ方ですね。 まずは簡略な例で確認したほうが良いですよ。 Sub sample() Dim f As String Dim s As String f = "c:\mydocuments" s = "abcde" MsgBox f & "\" & s & ".jpg" End Sub こんな感じで、『 変数 & "文字列" & 変数 & "文字列" 』 みたく繋ぎます。 Sub test() Dim MyObjFo As Object Dim Myname As String Dim fName As String Dim i As Long Set MyObjFo = CreateObject("Shell.Application") _ .BrowseForFolder(0, "フォルダを選択して下さい", 0) If MyObjFo Is Nothing Then Exit Sub Myname = MyObjFo.Self.Path & "\" 'MsgBox Myname With ActiveSheet For i = 1 To 7 fName = Myname & .Cells(i, "A").Value & ".JPG" 'MsgBox fName If Len(Dir(fName)) > 0 Then .Pictures.Insert fName Else MsgBox fName & "が見つかりません" End If Next End With Set myobj = Nothing End Sub
その他の回答 (1)
- tsukasa-12r
- ベストアンサー率65% (358/549)
試してはいませんが、\(半角)ではなく¥(全角)になっているのが原因ではないでしょうか。
お礼
回答ありがとうございます。大変感謝してます。 Myname = MyObjFo.Self.Path & "¥" fName = Myname & .Cells(i, "A").Value & ".JPG" つまりこの&の使い方がじゅうようだったんですね。 すごいです。ここまで長々と親切に教えてくれてありがとうございます。 納得できました。 If Len(Dir(fName)) > 0 Thenの使いかたもすばらしいです。 長さで判断に使うとは。 これでかなりぐっと便利になりました。