ファイルが既に開いているかの状態をチェックして取得するにはどうしたらよいか?
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2015年2月7日(土)18時55分 From: kataduke | 返事 削除 変更 |
ワークシート関数のCell関数とEvaluate関数を組み合わせたらどうですか? そちらで判断しといてVBAでその結果をIf〜Else〜Thenステートメントで条件分岐させたらうまくいきそうな気がします。 |
Message#2 2015年2月7日(土)06時09分 From: bookman | 返事 削除 変更 |
意図した回答でなかったらすいません。 読み取り専用で開きたいということでしょうか? それとも読み取りのやつがあれば、そのファイル名を取得するだけでしょうか? もう少し利用する用途を明記すると分かりやすいかと思います。 とりあえず読み取り専用でも開くにはどうすればいいかという場合の説明です。 誰かが開いていたらもちろん読み取り専用で開かれますが、毎度メッセージがでてくるとうざいです。 そこで、そのメッセージを表示させない方法について説明します。 ファイルを開くわけですから、もちろんOpenメソッドを利用します。 こちらのメソッドの引数にはNotifyがあり、こちらに「False」を設定すると通知メッセージが表示されません。 具体的には以下のような形です。 Sub Sample() Workbooks.Open Filename:="指定したファイル名の絶対パス", Notify:=False End Sub |
Message#1 2015年2月7日(土)05時41分 From: sakai | 返事 削除 変更 |
ExcelのVBAでファイルが既に開いているかの状態をチェックして取得するにはどうしたらいいでしょうか? 以下はサンプルのVBAコードです。 If〜Thenの部分でエラーが起きていますが、ここを見ても分かりませんでした。 開いているファイル名を取得して比較してもいいですし、読み取りファイルがある場合はそちらとファイル名の比較でもなんでもかまいません。 ようはそれが分かるようなVBAコードにしたいのですが、私の知識ではここまでが限界です。 有志の方々力を貸してください。 Sub Sample() Dim App As Object Dim MyFileName As String Set App = CreateObject("Excel.Application") MyFileName = "C:\Users\test.xlsm" With App .Workbooks.Open Filename:=MyFileName .Visible = True If .ReadOnly Then MsgBox "こちらは既に開いているファイル●●になります。" App.Quit '既に開いているファイルがあれば閉じる End If End With End Sub |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降