Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3606 / 13646 ツリー ←次へ | 前へ→

【61200】GetOpenFilenameについて hiro 09/4/16(木) 9:37 質問[未読]
【61201】Re:GetOpenFilenameについて つん 09/4/16(木) 9:50 発言[未読]
【61203】Re:GetOpenFilenameについて hiro 09/4/16(木) 11:44 お礼[未読]
【61202】Re:GetOpenFilenameについて yoshi 09/4/16(木) 10:01 回答[未読]
【61204】Re:GetOpenFilenameについて hiro 09/4/16(木) 11:45 お礼[未読]
【61210】おまけ...にならないかも Jaka 09/4/16(木) 13:22 発言[未読]
【61205】Re:GetOpenFilenameについて hiro 09/4/16(木) 11:57 質問[未読]
【61206】Re:GetOpenFilenameについて 真下まゆ 09/4/16(木) 12:27 発言[未読]
【61208】Re:GetOpenFilenameについて Jaka 09/4/16(木) 13:09 発言[未読]
【61211】Re:GetOpenFilenameについて 真下まゆ 09/4/16(木) 13:31 発言[未読]

【61200】GetOpenFilenameについて
質問  hiro  - 09/4/16(木) 9:37 -

引用なし
パスワード
   GetOpenFilenameについて教えてください。
よろしくお願いします。

※Excel2003を使用しています。

Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
を実行した時に、ファイルを選択せず「キャンセル」をクリックすると
デバックになってしまいます。
キャンセルをクリックした時には処理を終了し、ダイアログを自然に閉じるには
どうしたらよいでしょうか?
キャンセルがクリックされた事を拾うには、メッセージボックスのようにvbcancelで拾えるのでしょうか?

教えてください。よろしくお願いします。

【61201】Re:GetOpenFilenameについて
発言  つん  - 09/4/16(木) 9:50 -

引用なし
パスワード
   ▼hiro さん

おはようございます。

  Dim strName As String

  strName = Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
  
  MsgBox TypeName(strName) とか
  MsgBox strName

とかして、キャンセル時の返り値を調べて、それで対処したらいかがでしょう?
ヘルプの例題も参考になりそうでしたよ^^

【61202】Re:GetOpenFilenameについて
回答  yoshi  - 09/4/16(木) 10:01 -

引用なし
パスワード
   >Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
>を実行した時に、ファイルを選択せず「キャンセル」をクリックすると
>デバックになってしまいます。

返り値をVariant型の変数で受けて判定すればいいのですが、
ヘルプや↓こちらが参考になるでしょう。
E97M047 複数のファイルを選択するダイアログボックスを表示する 
ht tp://homepage2.nifty.com/kmado/kvba.htm

【61203】Re:GetOpenFilenameについて
お礼  hiro  - 09/4/16(木) 11:44 -

引用なし
パスワード
   ▼つん さん:

早速の回答ありがとうございます。

>  MsgBox TypeName(strName) とか
>  MsgBox strName

は、この不明点でなくても使用できそうですね。
ありがとうございます。参考にさせて頂きます。

>▼hiro さん
>
>おはようございます。
>
>  Dim strName As String
>
>  strName = Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
>  
>  MsgBox TypeName(strName) とか
>  MsgBox strName
>
>とかして、キャンセル時の返り値を調べて、それで対処したらいかがでしょう?
>ヘルプの例題も参考になりそうでしたよ^^

【61204】Re:GetOpenFilenameについて
お礼  hiro  - 09/4/16(木) 11:45 -

引用なし
パスワード
   ▼yoshi さん

回答ありがとうございます。
参考URL見させて頂きました。

早速やってみます。
ありがとうございました。


>>Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
>>を実行した時に、ファイルを選択せず「キャンセル」をクリックすると
>>デバックになってしまいます。
>
>返り値をVariant型の変数で受けて判定すればいいのですが、
>ヘルプや↓こちらが参考になるでしょう。
>E97M047 複数のファイルを選択するダイアログボックスを表示する 
>ht tp://homepage2.nifty.com/kmado/kvba.htm

【61205】Re:GetOpenFilenameについて
質問  hiro  - 09/4/16(木) 11:57 -

引用なし
パスワード
   GetOpenFilenameについて教えてください。
よろしくお願いします。
※一度に質問すればよかったのですが・・・。すいません。

※Excel2003を使用しています。

Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
は、ダイアログ表示時に毎回マイドキュメントがディレクトリ表示されますが、
これをコードで指定する事等は可能でしょうか?

教えてください。よろしくお願いします。

【61206】Re:GetOpenFilenameについて
発言  真下まゆ  - 09/4/16(木) 12:27 -

引用なし
パスワード
   こんにちは。お邪魔しますm(_ _)m

私は、同じドライブ内で指定するときは、こんな感じにして、
Sub test1()
  Dim vFileName As Variant

  ChDir ThisWorkbook.Path
  
  vFileName = Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
  If VarType(vFileName) = vbBoolean Then Exit Sub
End Sub


ドライブが違うときは、カレントディレクトリーを変えてしまってます。
Sub test2()
  Dim wshShell As Object
  Dim vFileName As Variant

  Set wshShell = CreateObject("WScript.Shell")
  wshShell.CurrentDirectory = "D:"
  
  vFileName = Application.GetOpenFilename("xlsファイル(*.xls),*.xls", , , , True)
  If VarType(vFileName) = vbBoolean Then Exit Sub
End Sub


何か変だったらお手柔らかに突っ込んでください〜m(_ _)m

【61208】Re:GetOpenFilenameについて
発言  Jaka  - 09/4/16(木) 13:09 -

引用なし
パスワード
   ▼真下まゆ さん:
>  ChDir ThisWorkbook.Path

>
>ドライブが違うときは、カレントディレクトリーを変えてしまってます。
>Sub test2()

>何か変だったらお手柔らかに突っ込んでください〜m(_ _)m
こんにちは。
つっこみつっこみ〜。

>ChDir ThisWorkbook.Path

>カレントディレクトリーを変えてしまってます
です。

痛いのは、胃じゃないかもしれない?Jaka。

【61210】おまけ...にならないかも
発言  Jaka  - 09/4/16(木) 13:22 -

引用なし
パスワード
   記載されたUPL先を見てないけど、もしかしたらかかれてないかも?
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=4512;id=excel

【61211】Re:GetOpenFilenameについて
発言  真下まゆ  - 09/4/16(木) 13:31 -

引用なし
パスワード
   ▼Jaka さん:

こんにちは(*^-^*)
ありがとうございます〜m(_ _)m

>>ChDir ThisWorkbook.Path
>も
>>カレントディレクトリーを変えてしまってます
>です。

ほんとですね(^o^;

3606 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free