
お世話になります。
過去の質問などを参考にして
Excel2013で、URLを一括で開くVBAを設定しました。
Sub macro1()
Dim myLnk As Range
For Each myLnk In Selection
On Error Resume Next
ActiveWorkbook.FollowHyperlink myLnk.Text
On Error GoTo 0
Next
End Sub
ただし、これだとオートフィルタで絞り込んでも
不可視セルも開かれてしまうので
可視セルを対象にすれば良いというところまでは分かりました。
Range("J1").CurrentRegion.SpecialCells(xlCellTypeVisible)
上記を組み込んでみたのですが不可視セルも開いてしまいます。
Sub macro1()
Dim myLnk As Range
Set myLnk = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
For Each myLnk In Selection
On Error Resume Next
ActiveWorkbook.FollowHyperlink myLnk.Text
On Error GoTo 0
Next
End Sub
For Each~の前にmyLnk.Selectを追加したら
可視セルだけ開くようになったのですが
任意の選択範囲ではなく、現在表示されている表全体が
選択範囲になってしまいます。。
J列にURLが貼ってあります。
選択したJ列のセル範囲の可視セルだけを
一括で開くやり方をご教示いただけると助かりますm(_ _;)m
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です
>私の頭ではうまく組み込むことができませんでした。
それなら、どこか空いているセルに対象範囲をコピペすれば良いでしょう。
フィルタで非表示になっている行はコピペの際に省かれますので、そちらを利用して処理すれば、表示/非表示を判別する必要がなくなります。
何度もありがとうございます。
別シートにコピペも考えていましたが
コピペしなくてもできればと思いご質問いたしました。
正しいかは別として何とか下記で動作しました。。
Sub macro1()
Dim myLnk As Range
Set myLnk = Selection.SpecialCells(xlCellTypeVisible)
If Selection.SpecialCells(xlCellTypeVisible).CountLarge > 30 Then
MsgBox "範囲未選択、もしくは対象が30以上のため開きません。"
Exit Sub
End If
myLnk.Select
For Each myLnk In Selection
On Error Resume Next
ActiveWorkbook.FollowHyperlink myLnk.Text
On Error GoTo 0
Next
End Sub
Selectすることで、可視セル範囲だけ対象に開くようになりました。
それと任意の範囲選択をしてない時にSelectすると
膨大な範囲が勝手に選択されてしまうので
事前にカウントして判断しています。
No.2
- 回答日時:
No1です。
>Hidenプロパティは行か列指定じゃないといけないんですね。
>Rangeをどのように変えたら良いのかなど
判定したいセルに対してEntireRowプロパティを参照すれば、そのセルを含む行全体が返されます。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
ってか、リンク先にほとんど全ての情報があるんだけれど・・・
No.1
- 回答日時:
こんにちは
ご質問文にある通りを、素直に処理すればよいのではないでしょうか。
表示/非表示の状態はHiddenプロパティで判断できますので、
『表示ならリンクをフォロー、非表示なら何もしない』
に修正すればよさそう。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
早速のお返事ありがとうございます。
Hidenプロパティは行か列指定じゃないといけないんですね。
Rangeをどのように変えたら良いのかなど
具体的なコードをいただけると助かりますm(_ _;)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba テキストボックスとリフト...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
エクセル オートフィルタで絞...
-
セルをクリック⇒そのセルに入力...
-
Excel for Mac使用中ポインタが...
-
エクセルの書式設定の表示形式...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルのセルの枠を超えて文...
-
Excel 例A(1+9) のように番地の...
-
Excelで住所を2つ(町名迄と番...
-
Excelで数式内の文字色を一部だ...
-
(Excel)数字記入セルの数値の後...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
EXCELのセルの中の半角カンマの...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
枠に収まらない文字を非表示に...
-
文字列として"(ダブルコーテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba テキストボックスとリフト...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセル
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
エクセルの書式設定の表示形式...
-
Excel 例A(1+9) のように番地の...
-
エクセルの一つのセルに複数の...
-
excelの特定のセルの隣のセル指...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
【Excel】 セルの色での判断は...
おすすめ情報