|
はじめまして、自己流でVBA学習中の者です。
コメントサイズの自動調整(XXX.Comment.Visible = True)でエラーが発生し、自己解決が出来そうにないので、質問させていだきます。使用環境はEXCEL2013です。
内容としては、1つ目のファイルでは製品の売上と出荷履歴の管理、2つ目のファイルには主要な製品の出荷管理をしています。
1つ目のファイルに売上の詳細を記入し印刷を押下すると、このファイルに記述されているVBAが呼び出され以下の動作をします。
1.出荷数をまとめた別のワークシートに、注文が入った製品の出荷量を記載する。
2.そのセルにコメント(客先や出荷数など)を記入する。
3.コメントの枠のサイズを自動的に調整する。
主要な製品の場合、2つ目のファイルが呼び出され、上記VBAが再度実行されます。
問題はこの2つ目のエクセルにコメント記入後、サイズを自動調整した際に起こります。
以下がコメントを記入する部分のコードです。
Sub WComment(xlSheet As Worksheet, WMon As Long, WItem As Long, item() As Object, i As Long)
Dim xlRange As Range
Dim ComTxt As String
’ActiviSheetは1つ目のファイルにある売上詳細を記入したワークシートです。
With ActiveSheet
xlSheetは出荷数をまとめたシートです。WMonは出荷月、WItemは売上製品です。(シートには出荷月・売上製品ごとに出荷数をまとめています。)
Set xlRange = xlSheet.Cells(WMon, WItem)
'xlRangeに既に数字(出荷数)が記入されている場合、加算します。
xlRange = .Range("F" & item(i).Row).Value + xlRange.Value
'ComTxt(コメント内容)はActiveSheet(売上詳細のシート)に記載されている日付、客先、出荷数を記載します。
ComTxt = .Range("B5") & " " & .Range("D5") & " " & .Range("F" & item(i).Row).Value & "PC"
'もし、xlRangeにコメントがない場合は新規でコメントを追加します。
If xlRange.Comment Is Nothing Then
xlRange.AddComment Text:=ComTxt
'すでに、xlRangeにコメントがある場合、現在のコメントを改行し、新しいコメントを追記します。
Else
xlRange.Comment.Text Text:=xlRange.Comment.Text & vbCrLf & ComTxt
End If
'コメント欄のサイズを自動調整します。ここでエラー発生(2回めのみ)。
xlRange.Comment.Shape.TextFrame.AutoSize = True
End With
End Sub
エラーメッセージは次のように表示されます。
”アプリケーション定義またはオブジェクト定義のエラーです。”
1つ目のファイルに書き込む際はエラーが起きていないので、別のファイルに書き込むのが問題ないのでしょうか?
以上、ご教授よろしくお願いします。
|
|