Excel で VLOOKUP 関数を使うとき、検索元セルの書式をコピーするにはどうすればよいですか?
これまでの記事では、Excel で VLOOKUP の検索値を取得する際にその背景色を保持する方法について解説しました。本記事では、Excel で VLOOKUP を実行した結果、対象セルのすべての書式をそのままコピーする方法をご紹介します。以下の手順に従ってください。
ユーザー定義関数を使用してExcel で VLOOKUP 時に元の書式をコピーする方法
ユーザー定義関数を使用してExcel で VLOOKUP 時に元の書式をコピーする方法
下図のスクリーンショットのようにテーブルがあるとします。このとき、指定した値(列 E)が列 A に存在するかどうかを確認し、存在する場合は列 C の対応する値をその書式ごと返す必要があります。これを実現するには、以下の手順に従ってください。

1.VLOOKUP したい値を含むワークシートで、シートタブを右クリックし、コンテキストメニューからコードの表示を選択してください。スクリーンショットをご確認ください:
![シートタブを右クリックして[コードの表示]を選択](http://cdn.extendoffice.com/images/stories/doc-excel/doc-vlookup-keep-formatting/doc-vlookup-keep-formatting-2.png)
2.開いたMicrosoft Visual Basic for Applicationsウィンドウのコードウィンドウに、以下の VBA コードをコピーしてください。
VBA コード1:VLOOKUP で返す値を書式付きで取得
Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20211203
Dim I As Long
Dim xKeys As Long
Dim xDicStr As String
On Error Resume Next
Application.ScreenUpdating = False
Application.CutCopyMode = False
xKeys = UBound(xDic.Keys)
If xKeys >= 0 Then
For I = 0 To UBound(xDic.Keys)
xDicStr = xDic.Items(I)
If xDicStr <> "" Then
Set xRg = Application.Range(xDicStr)
xRg.Copy
Range(xDic.Keys(I)).PasteSpecial xlPasteFormats
Else
Range(xDic.Keys(I)).Interior.Color = xlNone
End If
Next
Set xDic = Nothing
End If
Application.ScreenUpdating = True
Application.CutCopyMode = True
End Sub
3.次に、挿入>標準モジュールをクリックし、以下の VBA コード2 をモジュールウィンドウにコピーしてください。
VBA コード2:VLOOKUP で返す値を書式付きで取得
Public xDic As New Dictionary
'Update by Extendoffice 20211203
Function LookupKeepFormat(ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
Dim xFindCell As Range
On Error Resume Next
Application.ScreenUpdating = False
Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
If xFindCell Is Nothing Then
LookupKeepFormat = " "
xDic.Add Application.Caller.Address, " "
Else
LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value
xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address(External:=True)
End If
Application.ScreenUpdating = True
End Function 4.ツール>参照設定をクリックします。次に、Microsoft Scripting Runtimeのチェックボックスをオンにして、参照設定-VBAProjectダイアログボックスを閉じます。スクリーンショットをご覧ください:
![[ツール]>[参照設定]をクリックし、[Microsoft Script Runtime]のチェックボックスをオンにする](http://cdn.extendoffice.com/images/stories/doc-excel/doc-vlookup-keep-formatting/doc-vlookup-keep-formatting-3.png)
5.Alt+Qキーを押して、Microsoft Visual Basic for Applicationsウィンドウを閉じます。
6.検索値の隣にある空白セルを選択し、数式バーに=LookupKeepFormat(E2,$A$1:$C$8,3)と入力して、Enterキーを押します。

注:この数式では、E2に検索値が含まれ、$A$1:$C$8がテーブル範囲を示し、数字 3は返される値がテーブルの3 列目にあることを意味します。必要に応じて、これらの値を変更してください。
7.最初の結果セルを選択した状態で、フィルハンドルを下方向にドラッグし、以下のスクリーンショットのようにすべての結果とその書式を一括で取得します。


KUTOOLS AI でExcel の魔法を解き放ちましょう
- スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
- カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
- VBA コーディング:VBA コードを簡単に記述・実装できます。
- 数式の解釈:複雑な数式が簡単に理解できます。
- テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
関連記事:
- Excel で VLOOKUP を使って検索値とともにその背景色も取得するには、どうすればよいでしょうか?
- Excel で VLOOKUP を使って数値ではなく日付形式で結果を返すには、どうすればよいですか?
- Excel で VLOOKUP と SUM を組み合わせるには、どのようにすればよいでしょうか?
- Excel で隣接セルまたは次のセルにある値を VLOOKUP 関数で返すには、どうすればよいですか?
- Excel で VLOOKUP を使って値を検索し、TRUE または FALSE、あるいは YES または NO を返すにはどうすればよいですか?
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得