プロが教える店舗&オフィスのセキュリティ対策術

sendkeysで%{i}{p}{f}を実行してマクロでファイルから図の挿入をしようと思っているのですが、この時にデフォルトで「マイ ピクチャー」のフォルダーが開いてしまいます。別のフォルダー(ネットワークドライブ上のフォルダー)を開くようにマクロで設定できるでしょうか?

A 回答 (1件)

>sendkeysで%{i}{p}{f}


はDialogInsertPictureダイアログを開くためのコマンドですね。

コモンダイアログのカレントフォルダ規定値は変えられないと思いますが、GetOpenFilenameを利用すれば可能です。またWindowsAPIでカレントフォルダをネットワークドライブに設定できます

以下のマクロはネットワークパスの画像ファイルをシートに挿入するサンプルですので試してみてください。GetOpenFilenameとDialogInsertPictureは選択したファイル名が表示される/されないという違いがありますが、それほど違和感はないと思います

Declare Function SetCurrentDirectory Lib "kernel32" Alias _
  "SetCurrentDirectoryA" (ByVal CurrentDir As String) As Long

Sub Macro1()
SetCurrentDirectory ("\\abcde\Images") 'ネットワークパスを指定
res = Application.GetOpenFilename("画像 (*.jpg; *.gif; *.bmp), _
      *.jpg; *.gif; *.bmp", , "画像の挿入")
If TypeName(res) <> "Boolean" Then
  ActiveSheet.Pictures.Insert (res)
End If
End Sub
    • good
    • 0
この回答へのお礼

丁寧な回答を頂き感謝いたします。
しかしながら私の脳みそではzap35さんのおっしゃる事がよく理解できません。
そんな訳でサンプルをそのまま使わせて頂きました、どうもありがとうございます。

お礼日時:2008/02/22 02:26

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