• ベストアンサー

EXCEL2003マクロについて

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

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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

kiichi_go
質問者

お礼

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