
よろしくお願いします。
マクロを実行時、下記のエラーがでます。
ちなみにデバッグモードでは、「→」矢印のついた行が黄色くハイライトされます。
「実行時エラー91 オブジェクト変数またはwithブロック変数が設定されていません」
Set wb1 = Workbooks.Open("\\HOGE-01\hoge_joint\商品リスト\在庫表.xlsm")
→ Set ws1 = wb1.Sheets("総合") ' SheetをSheetsに修正
ただ、当該エクセルファイルのショートカットを作成し、そのショートカットアイコンのプロパティにて以下を登録し、そのショートカットから実行すると正常に実行されます。(作業フォルダは空白でも正常に動きます)
リンク先:\\HOGE-01\hoge_joint\商品リスト\在庫表.xlsm
作業フォルダ:\\HOGE-01\hoge_joint\商品リスト
このファイルをショートカットからではなく、本体から実行し、エラーがでなくなる方法をご教授いただけますと幸いです。
※\HOGE-01\hoge_joint\ とそのサブフォルダは信頼できる場所に設定してあります。
※信頼済みドキュメントの設定では、ネットワーク上のドキュメントは信頼するにチェックしています
※マクロの設定は、警告してVBAマクロを無効にするにチェックしています。
※マクロの設定ですべてのマクロを有効にして試しましたがショートカットからしか動作しませんでした。
※インターネットオプション、セキュリティで、ローカルインターネットに当該のIPを登録しましたが、これもショートカットからしか実行できませんでした。
※共有設定はEveryoneでフルアクセスです。
以上、何卒よろしくお願い申し上げます。
No.3
- 回答日時:
こんばんは
ご質問文からはハッキリしませんけれど、シート取得の際のエラーであれば、その前のOpen処理は正しく行われていることになります。
であるなら、当該ブックが開いてアクティブになっている状態でエラーが発生しているはずですが、そうなっていますでしょうか?
もしも、ブックがちゃんと開いているのなら、何らかの理由で戻り値を取得できていない可能性が疑われますが、ウォッチウインドウなどで変数wb1の内容を調べてみてください。
仮に、取得できていないようなら、Open後に
Set wb1 = ActiveWorkbook
などで、再取得してみても動作しないでしょうか?
なんとなくの雰囲気からは、サーバー側のロケールとの関連などで、日本語のパスが正しく解釈されていないような気もしますけれど・・・
No.2
- 回答日時:
こんばんは
再現できない事と掲示されているコードだけですと
91エラーを特定するには情報が足りないと思いますので
参考程度でお願いします
>ショートカットからなら正常に動作する疑問
これはショートカットからは単に開くだけでVBAからは開いたのちに特定シートを取得している違いだと思います
以下推測
ざっくりだとwb1が取得できていない為と思うのですが
ステップ実行だとエラーが出ないとか・・・
気になるのは在庫表.xlsmの拡張子・・・マクロ付きブックですね
Open系Activate系イベントなどは有りますか?
他のブックから開く想定で良いのですよね・・・
既にしているかもしれませんが ミニマムで実験を行ってみては
イベントを抑止してみる・読み取り専用で開いてみるとか・・
ActiveWorkbookで取得してみるとか・・・
新規ブック・標準モジュールで
Option Explicit
Private Const TargetPaht As String = "\\HOGE-01\hoge_joint\商品リスト\在庫表.xlsm"
Private Const TargetSheetName As String = "総合"
Dim wb1 As Workbook
Dim ws1 As Worksheet
Dim str As String
Sub test()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Call Tst1(True): Debug.Print str
Call Tst2(False): Debug.Print str
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Sub Tst1(fg As Boolean)
str = ""
Set wb1 = Workbooks.Open(TargetPaht, ReadOnly:=fg)
If Not wb1 Is Nothing Then
str = "wb1:True :" & wb1.Name
wb1.Sheets(TargetSheetName).Visible = True
Set ws1 = wb1.Sheets(TargetSheetName)
If Not ws1 Is Nothing Then str = str & " | ws1:True" & ws1.Name
wb1.Close
Set wb1 = Nothing
Set ws1 = Nothing
Else
str = "wb1:NG"
End If
End Sub
Sub Tst2(fg As Boolean)
str = ""
Workbooks.Open TargetPaht, ReadOnly:=fg
Set wb1 = ActiveWorkbook
If Not wb1 Is Nothing Then
str = "wb1:True :" & wb1.Name
Set ws1 = ActiveWorkbook.Sheets(TargetSheetName)
If Not ws1 Is Nothing Then str = str & "| ws1:True : " & ws1.Name
ActiveWorkbook.Close
Set wb1 = Nothing
Set ws1 = Nothing
Else
str = "wb1:NG"
End If
End Sub
イミディエイトウィンドウに出力れますか?
そもそも実行時エラーがはかれてしまいますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/11/09 11:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) マクロの有効化するダイヤログにつきまして 4 2024/04/30 15:38
- Visual Basic(VBA) エクセルのVBAコードについて教えてください。 2 2024/07/04 10:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2024/04/05 09:58
- Visual Basic(VBA) Excelのマクロについて教えてください。 下記のマクロを実行すると 別ブックに指定セル値をコピーで 1 2024/04/05 21:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
このQ&Aを見た人はこんなQ&Aも見ています
-
vbaマクロについて
Visual Basic(VBA)
-
エクセルの改行について
Visual Basic(VBA)
-
エクセルのファイルのコピーをとりたい
Excel(エクセル)
-
-
4
VBA_日時のソート
Excel(エクセル)
-
5
エクセルについてどう関数を使えばいいか教えてください。
Excel(エクセル)
-
6
役所でもらった書類をエクセル化するには? 役所に申請する用紙があります。A4で表になっていて枠内に文
その他(Microsoft Office)
-
7
エクセルについて教えてください
Excel(エクセル)
-
8
自動的に日付入力 応用
Excel(エクセル)
-
9
ユーザーマクロ作成
Excel(エクセル)
-
10
システムファイルについて
Excel(エクセル)
-
11
マクロを実行すると、セル範囲に @ がついてしまう
Excel(エクセル)
-
12
エクセルのマクロを記録して即実行したらエラー
Excel(エクセル)
-
13
【マクロ、画像あり】A表かB表かどちらか判断をして、処理をする
Excel(エクセル)
-
14
エクセルで同じブックを開くについて
Excel(エクセル)
-
15
「cells」が上手く機能しない
Excel(エクセル)
-
16
excelVBAについて。
Excel(エクセル)
-
17
不要項目の行削除方法について
Visual Basic(VBA)
-
18
エクセルのセルをクリックすると頻繁に出てくる
Excel(エクセル)
-
19
エクセルの設定、下へスクロールすると表のヘッダ項目がシートの列番号の部分に表示される
Excel(エクセル)
-
20
別のシートの指定列の最終行を返す関数の式を教えて下さい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件付書式設定にて、本日の日...
-
空白セルに斜線(罫線)
-
Excel 複数のセルが一致すると...
-
【マクロ】findメソッドで見つ...
-
Excel 条件に合ったセルを抽出...
-
findメソッドで、10:00:01 を検...
-
Excelオンライン 条件にあい、...
-
Excelで職務経歴書作成方法
-
3〜400人分のデータをExcelで管...
-
Excelの関数内の文字を一括変換...
-
Excel 条件に合うセルのみ合計...
-
エクセルで同じブックを開くに...
-
Excelで別のブックのセルを参照...
-
エクセルに、105と入力すると、...
-
エクセルで印刷するとき
-
エクセルのマクロを記録して即...
-
エクセルで、一部のセルだけ固...
-
スプレッドシート(Excelでも良...
-
エクセルについて教えてください
-
マクロ・VBAで、当該ファイルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報
ご回答、誠にありがとうございます。
>マクロはOpen済の<在庫表.xlsm>に書かれているんじゃないですか?
仰せの通りで、No.1様のご回答を見、これに違いない! 思い当たる挙動がある! と思いOpenの箇所を修正、他にも「wb1.Sheets」を多数使っていましたので、「wb1.Sheets」を「ThisWorkbook.Sheets」にカレントプロジェクト単位で総置換したところ、ショートカットからではなく、本体エクセルファイルから正常に実行することができました。AI頼りで作ったプログラムでしたので、正常には動いてくれてとても助かっているマクロなのですが根本的な部分の理解がまったく足りていませんでした。。。
まだ皆さまからのアドバイスをすべて見切れていませんが、その内容を見、勉強したいと思います。
取り急ぎの御礼とご報告までにて失礼いたします。