>>410
>Workbooks.Open.Filename:=Application.GetOpenFilename
>ってできないことが意味がわ「か」らない
Workbooks.Open Filename:=Application.GetOpenFilename
なら動くんだが、それではダメ?(open と filename の間は半角スペース)
何故かと言えば言語の仕様として
引数はピリオドで繋ぐものではないからとしか言いようがない
(workbooks はオブジェクト、open はメソッド、filename:=~ はその引数)
>i = Application.GetOpenFilename
>i.worksheet「s」()ってできない意味がわからない
変数i が workbook型だとして、Application.GetOpenFilename の戻り値はworkbook型ではない。
戻り値はvariant型なんだけど、キャンセル時に false になるだけで、ファイルが選択されていれば文字列が返される
複数ファイルが選択されてても文字列が配列で帰るだけ
それに、i がworkbook型変数なので set を付けないとダメ
i が variant型変数 なら文字列か false が帰るだけでヤッパリ workbook としての挙動はしない
i.worksheet「s」() っていうのも、worksheetオブジェクトは
既に開いているブックのシートしか指定出来ないから、i がブックとしてオープンしてなきゃ当然ダメ
>i = Workbooks.Open(filename:= ApplicationGetOpenFilename)
>i.worksheets()
>これならできる意味がわからない
set i = Workbooks.Open(filename:= ApplicationGetOpenFilename)
じゃないと動かないよ
理由は前述のとおり
Excel VBA 質問スレ Part51
■ このスレッドは過去ログ倉庫に格納されています
420デフォルトの名無しさん (ワッチョイ d223-AMYv)
2017/12/14(木) 00:24:26.11ID:0XKK4N9O0■ このスレッドは過去ログ倉庫に格納されています
