<<はじめに>>
いつもお世話になっております。VBA初心者のmasafumi55です。
お忙しいところ恐縮ですが、どなた様かご教示のほどお願いいたします。
<<目的>>
Range型の変数rgに、指定した範囲情報を入れる。指定範囲はRange("B2:Y19")。
<<エラーコード>> <エラーコメント:オブジェクトが必要です>
(注意)代入でエラーが起きましたが、代入しなければ、そもそもの範囲選択における処理は問題なく処理出来ていることは確認しました。
Dim rg As Range Set rg = _ ThisWorkbook.Worksheets("imageCardView").Range("B2:Y19").Select
<<エラーへの補足>>
以下の記述は目的の処理を問題なく行いました。
(注意)以下でのSelectionは、使用者が選択した範囲を指すようです。
Dim rg As Range
Set rg = Selection
<<結論>>
今回の理解できない点は、Selectionを代入する分には問題なく処理が走ったにもかかわらず、
具体的に範囲を.Selectで指定した場合は処理がうまくまわらなかったことです。範囲指定Range("B2:Y19")にする場合の正解をご教示お願いいたします。
<<今回模写参考にしたコード全文(エラー無し)>>
Sub ImgSave()
' エラー処理 On Error GoTo ErrorProc Dim rg As Range Dim cht As Chart Dim Path As String Dim WSH As Variant ' 範囲指定された部分を画像として保存 Set rg = Selection rg.CopyPicture appearance:=xlScreen, Format:=xlPicture ' Chartに画像を挿入して貼り付け Set cht = ActiveSheet.ChartObjects.Add(0, 0, rg.Width, rg.Height).Chart cht.Parent.Select ' Excel2016の不具合回避対応 遅延の為挿入 ' *** それでもうまく作動しない時は試してみてください↓ *** ' Application.Wait Now() + TimeValue("00:00:01") cht.Paste ' 名前を付けて保存 ' 保存先はお好みで Set WSH = CreateObject("WScript.Shell") outputPath = WSH.SpecialFolders("Desktop") outputPath = outputPath & "\IMG-" & CStr(Format(Now, "yyyymmddhhmmss")) & ".PNG" Set WSH = Nothing ' PNGとして保存します cht.Export Filename:=outputPath, filtername:="PNG" cht.Parent.Delete MsgBox "画像作成完了しました" Exit Sub
ErrorProc:
MsgBox "画像の作成に失敗しました"
End Sub
回答1件
あなたの回答
tips
プレビュー