Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
msoFileDialogFilePicker 選択ダイアログのループ
投稿日時: 21/04/25 13:48:42
投稿者: OkabeS

msoFileDialogFilePickerで、選択ダイアログで指定したファイルのフルパスを変数に代入して
ブックのセルを操作したいのですが、ダイアログがループしてしまいうまくいきません。
原因を教えていただけますでしょうか?
 
apply.Range("A1,A5").Select のところがうまくいっていないように見えますが
なぜか分かりません。。
教えていただけると助かります。
 
 
Sub test ()
With Application.FileDialog(msoFileDialogFilePicker) 'オブジェクトを定義
If .Show = -1 Then
applypath = .SelectedItems(1)
Set apply = Workbooks.Open(applypath)
apply.Range("A1,A5").Select
Else
Exit Sub
End If
End With
End Sub

回答
投稿日時: 21/04/25 14:12:41
投稿者: WinArrow
投稿者のウェブサイトに移動

(1)変数の定義について
>applypath
>apply
 
 
(2)問題のコード
>Set apply = Workbooks.Open(applypath)
ここでは、ブックを取得していますよね・・・
 
>apply.Range("A1,A5").Select
セルは、ブックのプロパティではありません。
 
ところで「ループ」になる要素は見当たらないですが
どのようになるんですか?
 

回答
投稿日時: 21/04/25 14:25:25
投稿者: WinArrow
投稿者のウェブサイトに移動

>apply.Range("A1,A5").Select
 
のエラーメッセージを読めば原因がわかると
思いますが・・・・・・
構造として
 
「ブック」の中には、複数の「シート」があり、
その1つの「シート」には、複数の「セル」がります。
問題のコードは、「ブック」からいきなり「セル」を参照していることになります。
 
これ、これからVBAを使おうとしたら、基本中の基本ですから、
しっかり理解しましょう。
ここまで理解できれば、問題は解決したことになります。
頑張ってみてください。
 

投稿日時: 21/04/25 16:15:00
投稿者: OkabeS

WinArrow様
 
早速のご回答ありがとうございます。
ご指摘の通りシート選択をしていませんでした。
問題の箇所を「apply.Worksheets(1).Range("A1,A5").Select」に変更し解決しました。
ありがとうございました。