マーティには一連のワークブックがあり、50ものワークシートが含まれているものもあります。彼は、各ワークシートの同じ場所にグラフィック(会社のロゴ)を貼り付ける必要があります。彼はすべてのワークシートを選択してから貼り付けを行うことでこれを実行しようとしましたが、通常の編集のように複数のワークシートで機能するようには見えませんでした。

マーティは正しいです。複数のワークシートを選択しているときにグラフィックを貼り付けようとしても機能しません。試してみると、Excelは貼り付けができないと言っていますが、ワークシートを1つだけ選択すると、非常にうまく貼り付けることができます。

代わりに、マクロを使用して貼り付けを行う必要があります。グラフィックがすでにクリップボードにコピーされていると仮定すると、次のようなマクロを実行できます。

Sub InsertLogo1()

Dim shtSheet As Worksheet

Application.ScreenUpdating = False     For Each shtSheet In Worksheets         With shtSheet             .Activate             .Range("A1").Select             .Paste         End With     Next     Set shtSheet = Nothing     Application.ScreenUpdating = True End Sub

マクロはワークブックの各ワークシートをステップスルーし、グラフィックをセルA1に貼り付けます。別のセルを使用する場合は、セルを選択する行を変更するだけです。

事前にグラフィックをクリップボードにコピーしたくない場合は、次のようなマクロを使用して、画像ファイルからグラフィックを直接挿入できます。

Sub InsertLogo2()

Dim strPath As String     Dim shtSheet As Worksheet

strPath = "C:\GraphicFolder\PictureName.bmp"



For Each shtSheet In Worksheets         shtSheet.Activate         Range("A1").Select         ActiveSheet.Pictures.Insert (strPath)

Next shtSheet     Set shtSheet = Nothing End Sub

もちろん、グラフィックファイルへのパスとファイルがワークシートに貼り付けられるセルを変更することもできます。必要に応じて、標準のWindowsダイアログボックスを表示する次のバリエーションを使用して、挿入するグラフィックを選択できます。

Sub InsertLogo3()

Dim strPath As Variant     Dim shtSheet As Worksheet     Dim sTemp As String

' Set the file type     sTemp = "Graphics Files (.jpg; .bmp; .gif; .tif; *.png)"

sTemp = sTemp & ", .jpg; .bmp; .gif; .tif; *.png"

strPath = Application.GetOpenFilename(sTemp)

If strPath <> False Then         For Each shtSheet In Worksheets             shtSheet.Activate             Range("A1").Select             ActiveSheet.Pictures.Insert (strPath)

Next shtSheet         Set shtSheet = Nothing     End If End Sub

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9205)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。