- 締切済み
VBA ハイパーリンク自動設定について
EXCEL2010にて マクロでハイパーリンクを自動設定を作りたいのですが、 中々うまくいきませんので、ご教授お願い致します。 只今、ミスチェック的なものを作成中ですが、 CSVをマクロが組み込んでるSheet1へ貼り付けて、マクロ実行し、 結果をSheet2へ書き込む様に作っています。 それで、Sheet1のA列を項番(1日に100件あったら項番1~100まで)に設定しており、 マクロを実行するとSheet2のA列へ項番をコピーするようにしているのですが、 このSheet2の項番からSheet1の項番へリンクする様にしたいのです。 マクロ実行すると・・・ Sheet2のA1をクリック→Sheet1のA1へ移動 Sheet2のA2をクリック→Sheet1のA2へ移動 Sheet2のA3をクリック→Sheet1のA3へ移動・・・・ 項番が100件あれば100件までリンクを自動設定。 という感じです。 色々ググってみましたが、別のExcelへ移動したり、Sheet1へ移動するのみだったりと イマイチよく分かりませんでしたので、宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- queuerev2
- ベストアンサー率78% (96/122)
Excelにおけるハイパーリンク挿入のVBAですね。 マクロとSheet1とSheet2は同じブックにあるということなので、たとえば Set HLSheet = ThisWorkbook.Sheets("sheet2") For i = 1 To 100 HLSheet.Sheets("graph1").Hyperlinks.Add HLSheet.Cells(i, 1), "", "Sheet1!A" & i Next でいかがでしょうか。(Excel2003で検証しました) 少し解説すると、リンク先がExcelのセル場合、2番目の引数(Address)は""、3番目の引数(SubAddress)をセル参照の文字列とします。 また、Hyperlinksの前のHLSheetはどうやら場所を指定するものではないらしく、ハイパーリンク埋め込み場所のワークシートでなくても存在するシートなら何でも大丈夫のようなのですが、念のため埋め込み場所のシートにしてあります。 埋め込み場所の指定はもちろん最初の引数のHLSheet.Cells(i, 1)で行っています。 なお、「色々ググってみましたが、(中略)イマイチよく分かりませんでした」とのことですが、今回のケースではマクロの記録とヘルプが役に立ちます。 まず、Sheet1!A1とSheet2!A2に数字の1を入力、Sheet2!A2を選択、マクロの記録開始、Sheet1!A1へのハイパーリンクを挿入、マクロの記録終了、としました。 記録されたマクロからまずはヘルプを調べ、あとは試行錯誤で上記のようなコードができました。