![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
excel2000のVBAのプロシージャを教えてください。
写真にあるとおり、sheet1の A1からA200セルまでに、 フルパスのアドレス、0、空白 が入っています。
ここで、フルパスが入っているセルを 下記の条件でハイパーリンクに置きかえたい。
1.フルパスの入っているセルをハイパーリンクのセルに変更する。
2.ハイパーリンクは、ハイパーリンクでも、ハイパーリンク関数でもいい
3.そのフルパスをハイパーリンクのリンク先アドレスにする。
4.表示文字列を ★ としたいです。
また、0が入っているセルは、空白に変更させたい。
以上がやりたいことです。そして下記プロシージャでトライしてみましたがエラーとなりうまくいきません。
プロシージャの修正もしくは、最適なプロシージャがあれば教えて欲しいです。
よろしくお願いします。
Sub test()
Dim trange As Range
Dim i As Long
For i = 1 To 200
trange = ("A" & i)
If trange.Value = "" Or "0" Then
trange.Value = ""
Else
Worksheets("Sheet2").trange.Hyperlinks.Add anchor:="★", Address:=trange.Value
End If
Next i
End Sub
![「excel2000vba ハイパーリンク」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/c/613184_5497c1810f768/M.jpg)
No.2ベストアンサー
- 回答日時:
模範解答はcj_moverさんが既にご提示下さっていますが、
せっかくですから勉強のために私はさらに原型を残して修正ってことで・・・
Sub test()
Dim trange As Range
Dim i As Long
For i = 1 To 200
Set trange = Range("A" & i)
If trange.Value = "" Or trange.Value = 0 Then
trange.Value = ""
Else
trange.Hyperlinks.Add anchor:=trange.Cells, Address:=trange.Value, TextToDisplay:="★"
End If
Next i
Set trange = Nothing
End Sub
Range で宣言した変数に代入するときは Set が必要です。
If で複数条件を指定するときは And , Or の後ろにも式が必要です。
Hyperlinks の使い方はもう少し勉強が必要かもです。
処理が終わったら変数に Nothing を指定して空にしてやると良いかもしれません。
ご自身のと比較して、勉強のネタにでもしてやってくださいませ。
No.1
- 回答日時:
こんにちは。
なるべく、原形を残すように考えたので、
修正点をご自分で確認して次に役立てるようにして貰えるとうれしいです。。
Sub test()
Dim i As Long
With Worksheets("Sheet2")
For i = 1 To 20
With .Range("A" & i)
If .Value = "" Or .Text = "0" Then
.Value = Empty
ElseIf .Hyperlinks.Count = 0 Then
.Hyperlinks.Add Anchor:=.Cells, Address:=.Value, TextToDisplay:="★"
End If
End With
Next i
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) エクセル VBA メール本文に指定セルに記載されているURLをリンクとして記載する方法 8 2022/08/08 07:50
- Excel(エクセル) Excelでハイパーリンクが変化する表を作りたい 6 2023/05/03 07:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
Accessでグローバル変数を宣言...
-
VBA プロシージャの名前の取得
-
callで順に実行されるプロシー...
-
或るプロシージャの呼び出し元判定
-
エクセルVBAで作成されたツ...
-
DoCmd.OpenFormパラメータが表...
-
Excel97のVBAで、出てくるPubli...
-
【Excel VBA】 WorksheetやRa...
-
OutlookVBAで作成したマクロに...
-
vbaでブックを開いたときにコン...
-
RTHDCPL.EXE... が起動時に出て...
-
VBAのプロシージャのことで
-
Ivent プロシージャについて
-
ファイルを開いたと同時に、サ...
-
JDBCによるストアドCALL
-
今まで使ってたユーザーフォー...
-
ACCESS マクロをモジュールに変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
callで順に実行されるプロシー...
-
VBA プロシージャの名前の取得
-
【Excel VBA】 WorksheetやRa...
-
OutlookVBAで作成したマクロに...
-
或るプロシージャの呼び出し元判定
-
Accessでグローバル変数を宣言...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
ACCESS2007インポート時の空白...
-
PL/SQLのエラーについて
-
excel/vba/public変数
-
Excel VBAで「プログラム実行」...
-
エクセルVBAが対応できるプログ...
-
ACCESS マクロをモジュールに変...
-
Excel:ThisWorkbookオブジェク...
-
ブックオープン時にテキストボ...
-
VBA 「文字が入っていたら、...
-
vbaでブックを開いたときにコン...
おすすめ情報