- ベストアンサー
ワードの「置換」について
WORD2003を使用しています。 ワードにURLのリストがあります。 一行に一つのURLアドレスです。 行の最後尾にカーソルをもってゆき、改行を押すと ハイパーリンクが張られます。 いちいち手でするのも面倒なので、一度にやりたいのですが。 「置換」で行の末尾に「改行」を挿入すればいいと思うのですが、やり方がわかりません。 どなたか教えてください。 よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。Wendy02です。 たびたび、すみません。久々でしたので、すっかり注意点を忘れていました。 今のままのコードで通すのでしたら、一旦、編集-検索-ワイルドカードで、 "http://*" を検索して、ヒットすれば、後は、マクロのコードの中で、 .ClearFormatting を削除していただければ、通るはずです。 Wordの検索は検索コマンドを初期化してしまうと、次の検索コマンドがデフォルトに戻って、効かなくなることをすっかり忘れていました。 この説明が良くおわかりにならないようでしたら、以下を使ってください。もう1つのマクロのも同じ原理です。 Sub HyperLinksChangingR() Dim myRange As Range Selection.StartOf wdStory With Selection.Find .ClearFormatting .MatchSoundsLike = False .MatchAllWordForms = False .MatchFuzzy = False .Format = False Do While .Execute(FindText:="http://*", MatchWildcards:=True, Forward:=True) = True With Selection .MoveEnd Unit:=wdParagraph, Count:=1 Hyperlinks.Add Anchor:=.Range, Address:=.Text .Collapse wdCollapseEnd End With Loop End With End Sub #2の回答の補足 >エクセルのA列にハイパーリンクされてあるURLのリスト(サイト名)があります。 >これのリンク先のURLをB列に取り出したいときはどういう関数を使えばいいですか? これは、良く意味が分りませんが、URL 自体から、サイト名を取り出すというのは、一旦、IEで相手のサイトにアクセスして取り出すことでしょうか?URLには、サイト名自体はないような気がします。不可能ではないのですが、極端に難しくなります。 それとも、以下のことでしょうか? h を抜いてあります。 ttp://oshiete1.goo.ne.jp/kotaeru.php3?qid=1947662 から、// この間 / を取り出すことは可能ですが、以下のような関数が良いかと思います。 =MID(A1,FIND("//",A1)+2,FIND("/",A1,FIND("//",A1)+2)-FIND("//",A1)-2)
その他の回答 (6)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 Wendy02です。 >エクセルのA列にURLを並べて実行しています。 どうして、Excelですることになったのですか? もしかしたら、どなたか、途中で、Excelと言われたからかもしれませんね。あくまでも、私の作ったものは、もうひとつのNo.1949609 のご質問ものも含めて、Wordマクロです。 貼り付けるのは、ThisDocument でかまいません。 Excelのマクロですと、コードが違います。
お礼
ありがとうございます。 お手数かけても申し訳ありません。 マクロのやり方がよくわかりません。 ワードを開いて、ツール→マクロ→VBEditor ThisDocumentをダブルクリック、でてきた ウインドウにコードをコピペして終了。 ツール→マクロ→マクロで、HyperLinksChanginngを選択→実行 としているのですが、やはりMatchWildcardと云々というエラーがでます。 きっとやり方が間違っているのだと思います。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。#4 のWendy02です。 後でみたら、間違いがありましたので、訂正しておきます。 Sub HyperLinksChanging() Dim myRange As Range Selection.StartOf wdStory With Selection.Find .ClearFormatting Do While .Execute(FindText:="http://*", Forward:=True, MatchWildcards:=True, Format:=False) = True With Selection .MoveEnd Unit:=wdParagraph, Count:=1 Hyperlinks.Add Anchor:=.Range, Address:=.Text .Collapse wdCollapseEnd End With Loop End With End Sub
お礼
ありがとうございます。 返事が遅れてすみません。 試みてみたのですが、 「実行時エラー4665 Match…とMatch…、とMatch…は同時にtrueに設定できません」と出ます。 エクセルでは 「実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていません」とでます。 エクセルのA列にURLを並べて実行しています。 いずれもマクロのVBの標準モジュールに貼り付けて使用しています。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 もしも、マクロが稼動状態でしたら、以下のマクロで、ThisDocument に貼り付けて以下のようにしてみたらいかがでしょうか? '----------------------------------------- Sub HyperLinksChanging() Dim myRange As Range Selection.StartOf wdStory With Selection.Find Do While .Execute(FindText:="http://*", Forward:=True, Format:=False) = True With Selection .MoveEnd Unit:=wdParagraph, Count:=1 Hyperlinks.Add Anchor:=.Range, Address:=.Text End With Loop End With End Sub '-----------------------------------------
No.1の続きです。 一旦、A列について、検索する文字列を ,*) の3文字、置換後の文字列を ) の1文字で、すべて置換すると、A列にアドレスが素で現れませんか? もし現れれば、コピー&値のペーストでいけると思います。
直接の回答ではありませんが、一旦、Excelへコピーしてはいかがでしょう? リストをすべて選択してコピー。ExcelのA列へペースト。そしてB1のセルに =HYPERLINK(A1) と入力し、リストの最後までコピーします。これでB列にリンクのリストができます。 次にB列全体を選んでコピー。Wordへ戻って新規文書にペースト。これでWordにリンクのリストができます。表になってしまうのが気に入らなければ表のセルを全部結合してから、セル内の行をすべて選んでコピーし、表の外でペーストすればOK。
お礼
ありがとうございます。 できました!完璧です。 もう一つ質問があります。 エクセルのA列にハイパーリンクされてあるURLのリスト(サイト名)があります。 これのリンク先のURLをB列に取り出したいときはどういう関数を使えばいいですか? よろしくお願いします。
- fukuchan7
- ベストアンサー率51% (156/302)
最初の1行目の段落の前にカーソルを置きます。 メニュー「編集」→「置換」→「置換と検索」→「置換」→「あいまい検索」のチェクをはずす 次に、「検索する文字列」に半角で「^p」と入力 「置換後の文字列」に半角で「^p^p」と入力 (「^」のチルダーは、半角モードで「ヘ」のキーで入力 します」) →「全て置換」で1行の改行が出来ます。 以上です
お礼
ありがとうございます。 改行が挿入できましたが、 残念ならがリンクは張られませんでした。 クリックしないとダメみたいですね
お礼
ありがとうございます。 うまくいきました!! これを機会にマクロを勉強してみたいと思います。