エクセルであるシート(A)の範囲(A1:D5)と範囲(E1:E5)を同時に別なシート 例えばシート(B)の同じ場所にコピーペーストしたい。 その時 別なシートへ移るときハイパーリンクで切り替えたいが もともとの最初(A)のシートの右側 例えば H1からH10までそれぞれのセルに移りたい各シート名を入れといて、あらかじめ 移りたいシートに移るハイパーリンクを作っておいた場合 そこのハイパーリンクされたセルをマウスでダブりクリックすると 自動的に移りたいシートに移り、最初のコピーしたシートと同じ位置 つまりはシートBの(A1:D5)と(E1:E5)にペーストされるようなVBAを教えてください とchatGPTに質問した。
帰ってきた答えは
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim ws As Worksheet
Dim rngCopy1 As Range
Dim rngCopy2 As Range
Dim linkIndex As Long
' クリックされたハイパーリンクの位置を取得
linkIndex = Target.Range.Row - Me.Range("H1").Row + 1
' シート名をH1からH10に対応するシート名に変更(必要に応じてカスタマイズ)
Select Case linkIndex
Case 1 To 10
Set ws = ThisWorkbook.Sheets("B")
Case 11 To 20
Set ws = ThisWorkbook.Sheets("C")
' 必要に応じて他のケースを追加
End Select
If Not ws Is Nothing Then
' シートAの範囲(A1:D5)と(E1:E5)をコピー
If linkIndex <= 10 Then
Set rngCopy1 = ThisWorkbook.Sheets("A").Range("A1:D5")
Set rngCopy2 = ThisWorkbook.Sheets("A").Range("E1:E5")
Else
' 例えば、範囲(E1:E5)もコピーしたい場合に対応
Set rngCopy1 = ThisWorkbook.Sheets("A").Range("A1:D5")
Set rngCopy2 = ThisWorkbook.Sheets("A").Range("E1:E5")
End If
' 対応するシートに移動して範囲をペースト
ws.Activate
ws.Range("A1").Resize(rngCopy1.Rows.Count, rngCopy1.Columns.Count).Value = rngCopy1.Value
ws.Range("E1").Resize(rngCopy2.Rows.Count, rngCopy2.Columns.Count).Value = rngCopy2.Value
End If
End Sub
と返答があったがAシート右に設定したBシートへのハイパーリンクにはペーストできるんだがAシート右に設定したCシートへのハイパーリンクセルをダブルクリックしてもBシートにいってしまってCシートにしはペーストできんのだが・・。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No1です。
>例えば逆にBシートのをCシートに貼り付けるにはどう書けばいいのでしょうか
同じものでシート名を入れ替えたものを設定しておけば可能です。
とは言え、結果的に何がなんだかわからなくなりそうな懸念を感じますけれど・・
No.1
- 回答日時:
こんにちは
ご提示のコードに
>(必要に応じてカスタマイズ)
と書いてありますが、H1~H10はシートBへ、H11~H20はシートCへリンクするという仮定で、決め打ちの記述がされているようです。
実際のリンクがどうなっているのか不明ですけれど、そのあたりが整合していないだけでしょう。
また、ご質問文には
>ハイパーリンクされたセルをマウスでダブりクリックすると~
とありますが、FollowHyperlinkを使っているので、シングルクリックで動作します。
(ハイパーリンクのセルの場合は、ダブルクリックを取得するのは難しいですけれど・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PowerPoint(パワーポイント) エクセルのマクロ設定について教えてください。 2 2021/10/29 11:36
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Excel(エクセル) Rangeメソッドは失敗しました。globalオブジェクトについて 6 2021/11/21 21:54
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) ワークシート内 検索 HITしたら すべて選択する 6 2021/11/11 22:50
- Visual Basic(VBA) シートごとに 個数と集計 2 2021/10/25 22:00
- Excel(エクセル) マクロ作成で困っています。お教え頂けませんか。 1 2021/12/12 17:02
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) サブフォルダ含むすべてのフォルダの Excel 検索 4 2021/12/13 09:33
- Excel(エクセル) マクロを修正できないものか、統合シートについて 3 2021/12/07 09:26
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
エクセル VBAでの転記の方法について
Visual Basic(VBA)
-
FileCopy時のエラー
Visual Basic(VBA)
-
-
4
Excel マクロについて
Visual Basic(VBA)
-
5
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
6
データから単位文字を除去して計算する方法は?
Excel(エクセル)
-
7
Excel 書式のクリア・値貼付けをしても書式が変わらない
Excel(エクセル)
-
8
excel 数値を入力し自動で他のセルの数値を移動させる方法
Visual Basic(VBA)
-
9
Excel VBAマクロをマスターするのに、どれ位時間掛かりますか?
Visual Basic(VBA)
-
10
ご教授お願いします。#NUM!が解消されません。
Visual Basic(VBA)
-
11
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
12
エクセルのマクロ
Excel(エクセル)
-
13
Excel 大なり小なりを表すとき、 例えば「10以上」なら、>=10 と表せますが、 この10の部
Excel(エクセル)
-
14
Excel 数行分セル結合したあと、結合した一番下の行を非表示にしたら、罫線が印刷されません。
Excel(エクセル)
-
15
VBAのコードを教えてください
Visual Basic(VBA)
-
16
エクセルで、小数点以下がないときに小数点を表示させない方法 +語尾に「(半角スペース)%」
Excel(エクセル)
-
17
Excelの同じ数値に記号をつけたい
Excel(エクセル)
-
18
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
19
ExcelのVBAコードを教えて頂けますでしょうか。 例シート2つがあります。 シート1は元データ
Excel(エクセル)
-
20
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
別のシートから値を取得するとき
-
同じ作業を複数のシートに実行...
-
XL:BeforeDoubleClickが動かない
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
API関数ImmSetConversionStatus...
-
【ExcelVBA】全シートのセルの...
-
IFステートの中にWithステート...
-
マクロを使って、シート印刷完...
-
エクセル・マクロ シートの非...
-
Excelマクロのエラーを解決した...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー'1004': WorkSheet...
-
【VBA】特定の文字で改行(次の...
-
エクセルのシート名変更で重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAで大量のファイルをシート名...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
ブック名、シート名を他のモジ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロについて教え...
-
VBA 最終行まで数式をコピーする
おすすめ情報
ありがとう
途中からですが
-------
Select Case linkIndex
Case 1 To 1
Set ws = ThisWorkbook.Sheets("A")
--
Case 4 To 4
Set ws = ThisWorkbook.Sheets("D")
' 必要に応じて他のケースを追加
End Select
If Not ws Is Nothing Then
' シートAの範囲(A1:D5)と(E1:E5)をコピー
If linkIndex <= 4 Then
としましたが うまくいかない。
AシートをもとにB,C,D の各シートにペーストされるのはできたが 今度はそれぞれのB,C,DにもH列のリンク先をAシートと同じく貼り付けしておいた場合 例えば逆にBシートのをCシートに貼り付けるにはどう書けばいいのでしょうか