前提・実現したいこと
現在Excelを開いた際に開いたユーザ名のログを残したく別ディレクトリにある
Excelを開いて日時とユーザ名を追記するようにしています。
何卒宜しくお願い致します。
発生している問題・エラーメッセージ
私の端末では動いてくれるのですが、
他の端末によっては起動せず下記のエラーメッセージが表示されます。
実行時エラー 91 オブジェクト変数またはWithブロック変数が設定されていません。
該当のソースコード
VBA
1Private Sub Workbook_Open() 2 Dim apPath As String 3 4 '現在のパスを取得 5 apPath = ActiveWorkbook.Path 6 7 'ユーザ名取得 8 LoginName = CreateObject("WScript.Network").UserName 9 Const logFile As String = "Log.xlsx" 10 11 'カレントディレクトリのpathに\を付ける 12 If Right(apPath, 1) <> "\" Then 13 apPath = apPath & "\" & "../log/" & logFile 14 End If 15 16 Dim log_file_sheet As Worksheet 17 Dim log_book As Workbook 18 Dim blank_cell As Range 19 20 '非表示 21 Application.ScreenUpdating = False 22 23 Workbooks.Open Filename:=apPath 24 Set log_book = Workbooks("Log.xlsx") 25 log_book.Activate 26 27 Set log_file_sheet = log_book.Worksheets(1) 28 Set blank_cell = log_file_sheet.Range("A1") 29 30 Do Until blank_cell.Value = "" 31 Set blank_cell = blank_cell.Offset(1, 0) 32 Loop 33 34 blank_cell.Value = Now & " " & LoginName 35 36 With log_book 37 Application.DisplayAlerts = False 38 .SaveAs apPath, FileFormat:=xlWorkbookDefault 39 .Close False 40 Application.DisplayAlerts = True 41 End With 42End Sub
試したこと
変数に型が無いのがあったので型宣言しました。
補足情報(FW/ツールのバージョンなど)
office2010
動かない端末のエクセルバージョンは同じですか?その端末デバッグした場合にどの部分でエラーになりますか?
ご回答ありがとうございます。Excelのバージョンは同じです。デバックなのですが、起動した最初のみエラーメッセージが表示されその後開発タブから実行してもエラーメッセージが表示されず処理が完了してしまうのです汗
開発タブにてステップ実行しているのですが、正常な動きをします。しかし、一度Excelを閉じて再度起動するとまた同じメッセージが表示されます
エラーが出るのはどの行ですか?
エラーが出る行なのですが、開発タブから再度実行してもエラーにならず行が特定できません。
DEBUG.PRINTでデバッグ文を仕込んでおけば、ある程度どこまで進んだかはわかるかと思います。
先程動かない端末にて
Dim apPath As String の直下に Debug.Print "1"
apPath = ActiveWorkbook.Path の直下に Debug.Print "2" と入れて実施致しました。
イミディエイトウィンドウには1としか表示されませんでした
すいません、先ほど確認したところ私のPC本体は64bitでしたが、エラーが起きているPCは32bitでした。Excelのバージョンと使用bit数は同じです。試しに拡張子をxlsmからxlsに変更して実行してみましたが、同様のエラーが起きています。
回答1件
あなたの回答
tips
プレビュー