ハイパーリンクを介してあるシートから別のシートにデータを移動する

ハイパーリンクを介してあるシートから別のシートにデータを移動する

既存の質問を検索したところ、類似の質問と回答が見つかりました。ただし、私の要件を満たすものはありませんでした。

あるスプレッドシートで、1 つのスプレッドシート内のリンクをクリックして 2 番目のスプレッドシートに移動し、クリックしたセルの値を 2 番目のスプレッドシートのフィールドに入力できるようにしたいと考えています。

たとえば、最初のシートの列Aには、単位、、およびが含まれITますFinanceNetworks

これらのフィールドのいずれかをクリックすると、ユーザーは「サブユニット」という2番目のシートに移動し、セルの値をA1に配置して、サブユニットリストを入力するためのifステートメントを記述できます。たとえば、をクリックするとセルA1にIT入力されIT、A3-A5のifステートメントを介して次のようになります。

Security, Support, Development

次に、同様の VB コードを再利用して、サブユニット名をクリックすると、サブユニットの詳細を表示する 3 番目のシートに移動するようにします。

それが意味を成すといいのですが、

私は VBA の初心者なので、コードをどこに配置すればよいか教えてください (例: タブ内、右クリック、コードの表示、または別の場所)

答え1

シート 1 で を押してALT+F11VB エディターを起動します。このコードをコピーして標準モジュールとして貼り付けます。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "Range " & Target.Address & " was double clicked"
 On Error Resume Next
    Dim xRg As Range
    Set xRg = Application.Selection
    Range("A80").Copy Sheet2.Range("A80")
    Application.Goto Worksheets("Sheet2").Range("A80"), True
End Sub

使い方:

  • セルにデータを入力しA80、セルをダブルクリックします。
  • どのセルがクリックされたかを確認するためのメッセージ ボックスが表示されます。
  • ボタンを押してくださいOK
  • Excel は、Copy & Pasteの内容を取得しA80、セル ポインターをA80シート 2 のセルに配置します。

注意

  • 必要に応じて、コード内のセル参照とシート名を調整します。
  • セルの範囲については を参照してくださいCopy & Paste
  • そうするには、この行を編集します。
  • Range("A80:A85").Copy Sheet2.Range("A80")

関連情報