プロが教えるわが家の防犯対策術!

ExcelVBAの使い方 ¥の使い方おしえてください。

現在、パス名取得に努めているのですが、最後がうまくいきません。

Dim MyObjFo As Object
Dim Myname As String


Set MyObjFo = CreateObject("Shell.Application") _
.BrowseForFolder(0, "フォルダを選択して下さい", 0, "C:\Documents and Settings\ユーザー名\My Documents\")
If MyObjFo Is Nothing Then Exit Sub
MsgBox MyObjFo.Items().Item().Path
MsgBox MyObjFo.Items.Item.Path
Myname = MyObjFo.Self.Path

For i = 1 To 7
ActiveSheet.Pictures.Insert( _
" " & Myname & " & " ¥ " & " & Cells(i, "A") & ".JPG").Select

上は途中までのそーすですが変数MynameとCells(i, "A") をつなぐ間に入る¥がうまく機能しなく
エクセルシート上に画像が張り付いていかないのでパス名の中の¥をうまくつないでフルパスにする方法を
教えてください。
お願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

回答ありがとうございます。大変感謝してます。

Myname = MyObjFo.Self.Path & "¥"
fName = Myname & .Cells(i, "A").Value & ".JPG"
つまりこの&の使い方がじゅうようだったんですね。
すごいです。ここまで長々と親切に教えてくれてありがとうございます。

納得できました。

If Len(Dir(fName)) > 0 Thenの使いかたもすばらしいです。
長さで判断に使うとは。
これでかなりぐっと便利になりました。

お礼日時:2010/05/19 19:49

試してはいませんが、\(半角)ではなく¥(全角)になっているのが原因ではないでしょうか。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A