- ベストアンサー
マクロで行をコピーしてハイパーリンク先に貼り付ける方法は?
- マクロを使用してExcelの行をコピーしてハイパーリンク先のファイルに貼り付ける方法について質問です。
- 以前教えていただいたマクロを使用して、6行程度の表は問題なく作業できましたが、行が増えてくるとエラーが発生します。
- エラーの内容は「実行時エラー9:インデックスが有効範囲にありません」と表示されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 いまのままの数式では、難しい内容になってしまいます。前回、私が書いたように、本来は、ハイパーリンクではなくても良かったのです。以下の場合は、ハイパーリンクを設定づけています。ハイパーリンクがないものは、その都度、ハイパーリンクを設定しています。 Sub HyperJumpCopy() Dim i As Integer Dim Adr As String i = ActiveCell.Row With Cells(i, 1) If .Offset(, 6).Hyperlinks.Count = 0 Then If .Offset(, 6).Formula Like "=HYPER*" Then Adr = Cells(i, 7).Formula Adr = Replace(Adr, "=HYPERLINK(", "") Adr = Mid(Adr, 1, InStrRev(Adr, ",") - 1) Adr = Evaluate(Adr) ActiveSheet.Hyperlinks.Add _ Anchor:=.Offset(, 6), _ Address:=Adr Else MsgBox "ハイパーリンクで飛べません。", 48 Exit Sub End If End If .Offset(, 6).Hyperlinks(1).Follow NewWindow:=True If Not ThisWorkbook Is ActiveWorkbook Then ThisWorkbook.ActiveSheet.Cells(1).Resize(, 6).Copy _ ActiveWorkbook.Worksheets("Sheet2").Range("A2") ThisWorkbook.Activate End If End With End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 前回の、書き込み(NO.4636482)では、ご自分が分かるレベルのマクロだけにコメントをつけて採用されたようですから、私などの書き込みは理解されないかもしれませんが、そのコードでは、ハイハーリンクを読んではいないように思います。G列にあるのは、ただの数式のはずです。通常、最低でもハイパーリンク・オブジェクトがあるかぐらいののコードは入れてもよいはずですが。 この4行をつけてみると、'ハイパーリンクがない'と出てくるのではないでしょうか。 If Cells(col, 7).Hyperlinks.Count = 0 Then '* MsgBox "ハイパーリンクがありません。", vbCritical '* Exit Sub '* End If '* Cells(col, 7).Hyperlinks(1).Follow NewWindow:=True 一応、このぐらいのアドバイスだけはしておきます。
- web2525
- ベストアンサー率42% (1219/2850)
ハイパーリンク先のBookがないだけじゃ?
お礼
ご回答ありがとうございます。 おっしゃる通り'ハイパーリンクがない'と出てきます。 ただ申し訳ないですが、なぜかがわかりません。 G列のセルをクリックすると、ちゃんと"&H3&".xls"の ファイルは開きます。ちなみにこのセルには =HYPERLINK("\\server\スタッフ\購買\"&H3&".xls",H3)の 関数も入っているのですが、これがまずいとかもあるの でしょうか? ど素人で申し訳ありません。
補足
ご回答ありがとうございます。 おっしゃる通り'ハイパーリンクがない'と出てきます。 ただ申し訳ないですが、なぜかがわかりません。 G列のセルをクリックすると、ちゃんと"&H3&".xls"の ファイルは開きます。ちなみにこのセルには =HYPERLINK("\\server\スタッフ\購買\"&H3&".xls",H3)の 関数も入っているのですが、これがまずいとかもあるの でしょうか? ど素人で申し訳ありません。