• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ハイパーリンクをコピペしてください)

マクロを使用してハイパーリンクをコピペする方法

このQ&Aのポイント
  • Excelのマクロを使用して、ハイパーリンクをコピペする方法について説明します。
  • 選択した各列の5行目以降に、単独または連続してハイパーリンク付きの文字列をコピペします。
  • そして、マクロを実行することで、各行の隣の列にテキストファイルにコピーした文字列を貼り付け、文字列の一部を省略します。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.3

サワリ程度にコードを書き動かしてみました。 本格的に作りこもうとすれば、 https://ja.wikipedia.org/wiki/Category:2022%E5%B9%B4%E6%B2%A1 このhtmlを objIE.document.body.innerHTML といったコードで取得し、 これを解析することで 「あ」用のurlを取得してアクセスし このhtmlを取得し、 これを解析し、。。。 といった繰り返しになりそうです。 最終的に取得する情報を明確にし、 上記実装が必要となりましょう。、 もはや「お遊び」の域を大きく超えますので これ以上の深追いは断念します。 VBAの限界にぶち当たりそうですので 必要であれば、 開発言語の選択も含め、業者への依頼を検討してください。 あるいは、このサイトの識者のコメントをお待ちください。 私は降ります。アシカラズ。

noname#252684
質問者

お礼

この度は、最初にSI299792さんをはじめありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

>リンク元を開けるとリンク先の一番最初に表示されるページです >リンク先の本文をテキスト形式 セルにハイパーリンクを設定する場合  別なブック、  自身のブックの任意なセル  任意なファイル  webサイト などが候補になるわけですが 今回はページと呼んでいるので、 urlを記述したwebサイトですか? あるいは、社内に設置したwebサーバーですか? 別な言い方をすると、httpやhttpsプロトコルですか? もしwebサイト、webサーバーですと、 VBAがIEを内部的に呼び出して使うこととなり ・サポートが終了していること ・WindowsがEDGEに誘導してくるだろうことから 少々厄介なことになるものと思います。

noname#252684
質問者

補足

どうもすいません ホープページの内訳は恥ずかしかしく、ご覧に供されるので伏せていました Wikipediaの「2022年没」の先頭ページです https://ja.wikipedia.org/wiki/Category:2022%E5%B9%B4%E6%B2%A1 「あ」から下をA列にコピペして使います あ シャハブッディン・アーメド ネッド・アイゼンバーグ あいはらひろゆき アイルランドの匿名男性 ジョン・アイルワード 青木新門 青木初夫 青木はるみ ・ ・ ・ その各々個人名の最初に開かれるページのリンク先をすべてテキスト形式にてB列にコピペです(恐らくこの時点でセル内の文字数規定に依り入りきらないものもあると思います)しかし幸いにもそのパターンがほとんど一緒なので数千文字から置換にて数十文字程度までに簡略化できます つまりA列が人名でB列には、その人物の肩書ということになります なるほどそう言えばIEは終了してしまうのでエッジその他のブラウザ(一番作成し易いものでも結構です)に切替対応しなければならないとのことで ・WindowsがEDGEに誘導してくるだろうことから 少々厄介なことになるものと思います。 厄介でもマクロコードが可能ということであれば誠に厚かましいのですがお願いできれば幸甚です 不可能ということであれば、またそれはそれで今回の質問は諦めて取り下げて解決とさせていただきます 可能ということであれば大変な労力をお掛けすると思われますので完成の暁には何かこちらでしてあげられることができれば(例えばご馳走をする等など)すいませんがOKチップということでご容赦ください いや~これが可能であれば非常に楽になり便利になると期待しております あと最後に付け加えさせていただきますとマクロコード作成にあたり何かこちらでも特別な知識が必要で、それをこちらで組み込まなければならないなどの処置がありましたらその節も誠に勝手ながらご容赦ください それは却下させてください もう研究・勉強は今更無理です 蛇足文誠に大変失礼つかまりました。

全文を見る
すると、全ての回答が全文表示されます。
  • SI299792
  • ベストアンサー率48% (738/1532)
回答No.1

「第二階層分」の意味が解らないのですが、 まさか「*)は、あいうえお。*」がリンク先はないと思うので、 ハイパーリンクでジャンプ先がF1なら、 F1に「*)は、あいうえお。*」が入っている、と勝手に解釈しました。 他ブック、やインターネットへのハイパーリンクでは、何も表示されません。 Option Explicit ' Sub HyperlinkFollowTest() Dim Hyperlink As Hyperlink Dim Address As String ' For Each Hyperlink In ActiveSheet.Hyperlinks On Error Resume Next Address = Range(Hyperlink.Name) Address = Replace(Address, "*)は、", "") Address = Replace(Address, "。*", "") Range(Hyperlink.Range.Address).Offset(, 1) = Address Next Hyperlink End Sub

noname#252684
質問者

補足

返信すいません 第二階層分とはそれぞれのリンク元を開けるとリンク先の一番最初に表示されるページです ここではA列に複数のリンク元をコピペします そのA列と同じ行のB列にリンク先の本文をテキスト形式をコピペしていってください その個々に開いたページ全体は、どのページもある一定のパターンが決まっていてB列上のセル内に置換にて短縮して編集します ※手作業でやる場合の作業工程 ①A列に連続されたリンク元の表題をコピペする ②A列1行目のリンク元を開いてリンク先の表示されたページをコピペして同じ行の隣の列(B列1行目)にコピペする ③あとは繰り返しA列2行目→B列2行目にコピペ ④B列全行を置換をする 1回目は「*)は、」アスクタリスはワイルドカード検索 2回目は「。*」アスクタリスはワイルドカード検索 ⑤完成(稀にこの置換指定では失敗するものもありますが、それはごく数例なので手作業にて訂正) ※今回のマクロの目的 A列に200行コピペしたとなるとB列に200行分ページを開きながらコピペ作業の繰返しです A列1行目→B列1行目 A2→B2 A3→B3 ・ ・ ・ A列200行目→B列200行目 最後にB列を一気に置換で短縮編集します

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelでハイパーリンクの一括置換(指定範囲)

    現在、Excel2002を使用しておりますが、ハイパーリンクの一括置換用マクロ作成でつまづいておりますので、詳しい方お願いします。 【Excelデータ】   A B C D …… 1 ★ ★ ★ ★ …… 2 ★ ★ ★ ★ …… 3 ★ ★ ★ ★ …… : : : : : ★マークの箇所のデータにURLの途中まで同じハイパーリンクが貼られています。 リンクはhttp://aaa.bbb.ccc/ddd/eee/… ここで、C列の1行目から最終行(約1万行)までのハイパーリンクのみ ddd→FFFとしてhttp://aaa.bbb.ccc/FFF/eee/… としたかったので、こちらのサイト検索をしてみると Sub ハイパーリンクの置きかえ()  Dim H As Hyperlink  For Each H In Range("B2:B101").Hyperlinks   H.Address = Replace(H.Address, "\\abc", "\\def")  Next End Sub という回答を見つけることが出来ました。 そこで、それを参考にして Sub macro1()  Dim H As Hyperlink  For Each H In Range("C1:C50000").Hyperlinks   H.Address = Replace(H.Address, "ddd", "FFF")  Next End Sub ※C列は約1万行なので5万行まで指定すればよいかと思い、この値にしてます。 とマクロを作成したのですが、 いざ実行してみると、C列だけではなく、他の列まで全部一括置換してしまいます。 私はC列だけを置換したいので、何か良い方法をご存知の方はお願い致します。 C列だけ他のシートにコピーして一括置換して元の場所に貼り付ける方法も考えたのですが、その方法ですと、D列を別の文字列に一括置換とかE列を更に別の文字列に置換… とした場合の応用がききませんので…

  • 【エクセル】VBAでハイパーリンクそうさ

    VBAでハイパーリンクのマクロを組んでいます。 A列にホームページ名が50行(シートによってまちまち)くらい並んでいて、 B列に、それに対応するURLが記入されています。B列は空白のところがちらほ らあります。 A列に、A列の表示(ホームぺジ名)のまま、B列のURLでハイパーリンクを張りたい です。リンクは貼れたんですが、ホームページ名がどうやれば表示できるかわかり ません。教えてくださいお願いします。 ダメダメですが、一応自分で書けたところまでを載せておきます。 Sub ハイパーリンク() Dim i As Integer Dim j As Integer j = 50 For i = 1 To j Sheets("Sheet1").Select Cells(i , 1).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ Cells(i , 2), TextToDisplay:="" Next i End Sub としました。

  • A列の最終行までハイパーリンクを付けたい

    A列の最終行までハイパーリンクを付けたいのですがコードがわかりません。 Sub test() Dim i As Long For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row 'ハイパーリンクにするコード Next i End Sub まではわかりました。 表示文字列もURLもセルに入ってる値にしたいです。 ご教授よろしくお願いします。

  • ハイパーリンクの表示で質問の続きです。

    これで大丈夫かな? Sub test() Dim i As Long For i = 1 To Range("A65536").End(xlUp).Row Cells(i, 1).Hyperlinks(1).TextToDisplay = Cells(i, 1).Hyperlinks(1).Address Cells(i, 2).Value = Cells(i, 1).Hyperlinks(1).Address Next i End Sub ------------------- 有難うございました。完璧ですが、 ハイパーリンクのないセルのところでエラーになります。 ハイパーリンクのないセルは無視(エラーを無視)して次のセルの作業を指示したいのですが、・・・お願いします。 しばらくVBAを離れていまして思い出せません。すみません。

  • WORD VBAでハイパーリンクの文字列色変更

    最初の質問 VBAの初心者です。教えてください。 色々なWEBサイトより情報を集めてWORD文書を作成しています。フォント名、サイズ、色がバラバラで、それを統一するVBAは以下のように出来たのですが、ハイパーリンクされている文字の色も黒になっています。ハイパーリンクされている文字色だけは本来の青色で表示したいのですが、どのようにしたらいいのか分かりません。よろしくお願いします。 (WORD2007 Windows7) 早速keithinさんより以下のご回答をいただきました。新しいWORDファイルで例題(30行ぐらい)を作り実行したところ、希望通りの結果でした。 その後ハイパーリンクの全てが表の中にある本ファイルで実行したところ、ハイパーリンクスタイルを再設定する途中で止まってしまい(12-13は設定されている)、”指定されたプロパティはこのオブジェクトではサポートされません”として h.Range.Style = wdStyleHyperlink がハイライトされてしまいます。 どのような問題が考えられるのでしょうか? 問題解決したと云いながら申し訳ありません。 サポートよろしくお願いします。 Sub macro1()  Dim h As Hyperlink ’全文のフォントを設定する  With ActiveDocument.Range(0, ActiveDocument.Range.End).Font   .Name = "MS Pゴシック"   .Size = 10.5   .Bold = False   .Color = wdColorBlack  End With ’ハイパーリンクスタイルを再設定する  For Each h In ActiveDocument.Hyperlinks   h.Range.Style = wdStyleHyperlink  Next End Sub

  • excel2000vba ハイパーリンク

    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

  • excel2000でマクロを実行してハイパーリンクを貼る方法について教

    excel2000でマクロを実行してハイパーリンクを貼る方法について教えてください。 例えば、下の名前の7枚のワークシートがあるとします。 <ワークシート> メニュー、阪神、中日、巨人、ヤクルト、広島、横浜 いま、自分がやりたいのは「マクロを実行すると、各ワークシート名がワークシート”メニュー”に 表示され、しかも、そのワークシート名を押下すると該当するワークシートに移動するようにハイパ ーリンクを貼るようにしたい」のです。 マクロを実行すると、”メニュー”に各ワークシート名を表示させるところまで見よう見まねで できました(”メニュー”も表示されてますが今は気にしない)。 Sub shtname() Dim sht As Worksheet Dim i As Long i = 1 For Each sht In Worksheets Sheets("メニュー").Cells(i, 2).Value = sht.Name i = i + 1 Next End Sub あとは、”メニュー”に表示された各ワークシート名(阪神、中日、・・・、横浜)にハイパーリンクを 貼りたいのですが、どのように記述すれば良いのでしょうか? お手数ですが御教示ください。

  • VBA シート内ハイパーリンク置換がうまくいかない

    お世話になります。 今、エクセルシートのセルにあるハイパーリンクの置換をVBAで行おうとしています。 ファイルサーバの移設に伴い、ファイルサーバ内に保存されているエクセルファイル内のハイパーリンクの一部置換を実施すべく、下記のとおり作ってみましたがうまく置換してくれません。。 置換したいエクセルファイルはlist_TM.txtにフルパスでリスト化しており、ファイルを開く→ハイパーリンクがあれば置換→上書き保存して閉じる の繰り返しを実行しています。 下記を実行したあと、実際にファイルを開いて置換された結果を確認すると、\\server1\tantou\Datasave\sample.xls → C:\Datasave\sample.xlsとなってしまっており、当方が所望する\\server2\kyoyu\tantou\Share\Datasave\sample.xlsになっていませんでした。原因がよくわからず質問させて頂いた次第です。 なお途中でTargetRowとTargetColumnを挟んでいますが、この2行はハイパーリンクがある行と列をちゃんと拾ってくれているかどうか確認するために入れたので、無視してい頂いていいかと思います。 お力添えの程、宜しくお願い致します。 Sub Link_OKIKAE() Dim i As Long Dim buf As String Dim AWBN As String Dim HL As Hyperlink Open "C:\temp\test\list_TM.txt" For Input As #1 Do Until EOF(1) Line Input #1, buf Workbooks.Open buf AWBN = ActiveWorkbook.Name For i = 1 To Worksheets.Count Sheets(i).Activate For Each HL In ActiveSheet.Hyperlinks TargetRow = HL.Range.Row TargetColumn = HL.Range.Column HL.Address = Replace(HL.Address, "\\server1\tantou", "\\server2\kyoyu\tantou\Share") Next HL Next i Workbooks(AWBN).Save Workbooks(AWBN).Close Loop Close #1 End Sub

  • TextToDisplayがうまく出来ない。

    シートの中の全てのハイパーリンクのアドレスとテキストを新シートに一覧で書き出すマクロを作ってるのですが、詰みました。 例えば、http://oshiete.goo.ne.jp/をctrl+A→ctrl+Cで、全体をコピーして エクセルのシートに貼り付けます。(添付画像参照) そうした状態で、 ///////////////////////////////////////////////////////// Sub test() Dim h As Hyperlink Dim MyRow As Long Dim StrURL As String Dim StrTEXT As String Dim MyBook As Workbook Dim NewBook As Workbook Debug.Print ActiveSheet.Hyperlinks.Count Set MyBook = ActiveWorkbook Set NewBook = Workbooks.Add 'ブックを挿入したらアクティブになってしまう MyRow = 1 For Each h In MyBook.ActiveSheet.Hyperlinks StrURL = h.Address 'アドレスを抜き出す If IsNull(h.TextToDisplay) = True Then StrTEXT = "" Else StrTEXT = h.TextToDisplay '表示文字を抜き出す End If NewBook.Activate '新ブックをアクティブにする Cells(MyRow, 1) = StrURL Cells(MyRow, 2) = StrTEXT MyRow = MyRow + 1 Next Set MyBook = Nothing Set NewBook = Nothing End Sub ///////////////////////////////////////////////////////// を実行してるのですが、h.TextToDisplayが空白の時?値がエラーの時?に、 実行時エラー ’-2147467259(800004005)': 'TextToDisplay'メソッドは失敗しました:'Hyperlink'オブジェクト となってしまいます。 If IsNull(h.TextToDisplay) = True Then をすれば回避できると思いましたが、ダメでした。 なんでこのエラーになるのかと、このエラーを回避する方法を教えてください。 ご回答よろしくお願いします。

  • ハイパーリンクの表示文字列をマクロで変更したい

    office2003です ハイパーリンクの表示文字列をマクロで変更したいのですが、 worksheets(1).Hyperlinks.add .range("a1"),"http;//~” までは出来たのですが、表示文字列を変更する方法を教えてください

このQ&Aのポイント
  • MFC-J827DWNで黒色が出ないトラブルについて詳しく教えてください。極端に薄い印刷結果が出る場合も含めて、トラブルの経緯や試したこと、エラーメッセージなどをご確認します。
  • MFC-J827DWNの黒インクの印刷不良トラブルに対する解決方法をご紹介します。黒色が出ない場合や印字が極端に薄い場合の原因や対処法について詳しく説明します。
  • MFC-J827DWNで黒色が印刷されない問題が発生していますか?極端に薄い印刷結果が出る場合も問題の一つです。この記事では、黒インクの印刷不良トラブルに対する解決方法を解説しています。
回答を見る

専門家に質問してみよう