高校三年生の合唱祭で何を歌いましたか?

Wordのマクロ(VBA)を開発してます。
マクロのダイアログ上で、Windowsコモンダイアログである「ファイルを開くダイアログが開く」を使うため、以下の宣言のところ、宣言の箇所でVisual Basic6.0のエラーがでて、実行できません。
この宣言の前に、何かVisaul Basic6.0に設定を加える必要があるのでしょうか?

Visaul Basic6.0のエラー
 Compile Error:
User-defined type not defined


''==================================
'' ファイルを開くダイアログボックス
''==================================
Public Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (lpofn As OpenFileName) As Long

A 回答 (1件)

Word VBAでは、ふつう、Win32API のコモンダイアログを使う人はいないと思いますが、一応、開くところまでのコードを書かなければ、Win32 APIだけで、間違いなどは判断もできません。

エラーからみると、たぶん、構造体を書いていないだけのことだと思います。

私なら、Word VBAでは組み込みダイアログを使います。

Sub Macro1()
 Dim ret As Variant
 With Application.FileDialog(msoFileDialogOpen)
  .Filters.Add "テキストファイル", "*.doc", 1
  ret = .Show
  If ret = False Then Exit Sub
  Documents.Open .SelectedItems(1)
 End With
End Sub

どうしてもAPIで書きたいのでしたら、開くところまで書いてください。
    • good
    • 0
この回答へのお礼

【Tool - Reference】メニューで、Windows Microsoft Common Controlのチャックがついていなかったのが、原因でした。ご回答ありがとうざいました。

お礼日時:2010/11/13 00:36

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


おすすめ情報