- 締切済み
CommonDialog でエラー
OSとExcelを再インストールしたところ、下記のところでエラーが出ました。 なぜでしょうか。解決策はあるでしょうか。 以前は、使用できておりました。 Excelのマクロは、ほとんど理解しておりません。 他人が作成したマクロになります。 OS:WindowsXp Excel:2003 よろしくお願いします。 Private Sub CommandButton3_Click() Dim strArg() As String Dim i As Integer CommonDialog1.filename = "" ←ここでエラーがでてとまります。 CommonDialog1.ShowOpen strArg = Split(CommonDialog1.filename, "\") ごにょごにょ演算など。 End Sub
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- WindFaller
- ベストアンサー率57% (465/803)
#2の回答者です。 ところで、 strArg = Split(CommonDialog1.filename, "\") で、変数に、i があるのですが、もしかしたら、ただのファイル名だけを取るものではないでしょうか? もしそうだったら、Dir(FName)で、フォルダ名がない、ファイル名だけが取得できます。
- WindFaller
- ベストアンサー率57% (465/803)
こんばんは。 こちらでも、試しに、そのコードそのものはExcel2003で通りましたが、問題は、Excelの種類にも依存するかもしれないということです。 解決策の前に、少し、能書きを書かせていただきます。 仮に、Excel2003は、Personal Versionでも、VB6 RunTime を含んでいたとは思いますが、私の場合は、VB6自体を持っていたし、Access では、使う時はあっても、Excelでは、Developer Versionしか、コモンダイアログは使いませんでしたね。つまり、ランタイムをインストールしただけでは、ライセンスを持っていないはずなので、コモンダイアログは使えないのではないかと思いました。 それと、.filename とすべてが、小文字になっている所が気になります。何か別に使っているのではないでしょうか?ここの掲示板では、無頓着な人もいるようですが、やはり、これは、何かサインとして受け取ったほうがよいです。 それで、解決策としては、コモンダイアログを使うのをやめて、Excel VBAのネイティブ・コマンドを使ったらどうかと思います。Excelというものは、他のOffice に比較して、コマンドが多く存在しています。 '// Private Sub CommandButton3_Click() Dim Fname As Variant Dim strArg As Variant '念の為に、Variant型にしました。 Const FSEP As String = "\" 'ファイルセパレータ Fname = Application.GetOpenFilename() '←ここがポイント If VarType(Fname) = vbBoolean Or Fname = "" Then Exit Sub strArg = Split(Fname, FSEP) End Sub '//
- NotFound404
- ベストアンサー率70% (288/408)
Common Dialog Control が入っていないのでは? http://okwave.jp/qa/q1185926.html なので取りあえず、VBEのツールから参照設定をクリックし 中の「参照(B)」ボタンをクリックし C:\Windows\System32\COMDLG32.OCX を探し出して「開く」 見つからなければ、 http://www.vector.co.jp/soft/dl/win95/util/se342080.html からランタイムをダウンロード。 vb6rt340.exe をダブルクリックすると解凍先フォルダを聞いてきますので 適宜入力。 フォルダ内の、「お読み下さい.chm」に目を通したら setup.exe をダブルクリック。 その後、参照設定に登録。 メニューのデバッグから○△のコンパイルを実行。 何も起こらなければOK。