コード等のテキストを入力するとき、別のワークブックよりテキストを転記する方法です。
目次
テキスト転記の例
入力するコード等の文字が長かったり、複雑な場合間違えないように、そして早く楽に入力したいときの例です。
転記機能がない場合
シート「取引」のC列にコードを入力すると、右隣のシート「取引先」のデータを参照しD列に取引先を表示する例です。D列にはVLOOKUP関数が入力されています。

シート「取引先」からコードを検索してコードをコピーすると大変です。

転記機能のある例
シート「取引先」を別のワークブックで簡単に抽出できるワークシートを作り、抽出した結果のテキストを転記する方法です。
「別のワークブックで簡単に抽出できるワークシート」というのが、以下の別記事であげている方法です。
別ブックにする理由は、転記するブックは複数あり、マクロ機能はないためです。
- 青枠:マクロ機能なし、別ブック(赤枠)からコードを転記する。
- 赤枠:別のワークブックのみにマクロ機能が有効なブックにします。

(1)ワークブック「sample.xlsx」のシート「取引」のセルC2をクリックし、Alt + F8でマクロを呼び出し実行します。もしくはショートカットキーを割り当てる方法もあり。

実行結果です。
ワークブック「取引先転記.xlsm」のシート「取引先」を表示し、セルA1に転記先のワークブック名、セルB1に転記先のアドレスが入力されます。

(2)ワークブック「取引先転記.xlsm」のシート「取引先」でデータを抽出し、該当のコードのセルをクリック後、コマンドボタン「転記」をクリックします。

結果です。
転記先の「sample.xlsm」を表示し、セルC2にコードを転記します。

VBAで転記するサンプル
VBAのコードは「取引先転記.xlsm」にあります。場所は2カ所です。
- 転記先シートよりマクロを呼び出した時:標準モジュール
- コマンドボタン「取引」をクリックした時:Sheet1(取引先)
転記先シートよりマクロを呼び出した時:標準モジュール
Sub tenkisaki() Dim aWb As String Dim aCell As String aWb = ActiveWorkbook.Name aCell = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) With Workbooks("取引先転記.xlsm").Sheets("取引先") .Range("A1") = aWb .Range("B1") = aCell .Activate End With ActiveWindow.WindowState = xlMaximized End Sub
コマンドボタン「取引」をクリックした時:Sheet1(取引先)
Private Sub Cmd3_Click() Const tWs As String = "取引" Dim aCell As String Dim mWb As String, mWh As String, mCell As String mWb = Range("A1") mCell = Range("B1") If mWb = "" Or mCell = "" Then MsgBox "転記先の指定がありません", vbExclamation, Title:="転記先" Exit Sub End If aCell = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) Range("A1:B1").ClearContents With Workbooks(mWb).Sheets(tWs) .Range(mCell) = Range(aCell) .Activate End With End Sub
説明については後日追記予定。