プロが教えるわが家の防犯対策術!

エクセルのA列にURLリンクが貼られている文字列が3000行ほどあります。そのURL(例:http://www.***.**.cc/など)の文字列をB列に入力したいのですが、リンクゲット関数か何かあるのでしょうか?またはマクロ(VBA?)とかで処理する方法はあるのでしょうか。
よろしくお願いします。

A 回答 (10件)

こんにちは。

maruru01です。

仮に1~3000行までのA列のリンクアドレスをB列に書き出すとします。


Sub Macro()

  Dim i As Long

  For i = 1 To 3000
    Cells(i, 2).Value = Cells(i, 1).Hyperlinks(1).Address
  Next i

End Sub


という感じになります。
    • good
    • 0
この回答へのお礼

質問の意図はmaruru01の言われている通りです。
関数はなくマクロ(VBA)であるということですね。
助かりました。ありがとうございます。

お礼日時:2003/10/08 17:48

feverさん



ああ、97ですか。
私は2000なもので。
しかも、97と仕様が異なること知らなかったし・・・
これじゃあ、最初から話がかみ合うはずないですよね。
ごちゃごちゃ言って申し訳有りません。
質問者さんが97だったら、私の回答はほぼ意味なしです・・・
私も質問者さんからのリアクションがない限りはこれでコメントを控えます。
失礼しました。
    • good
    • 0

maruru01さん、何度もすみません(^^ゞ



私のエクセルは97なのですが、http://~で入力しても自動的にハイパーリンクになりませんし、ハイパーリンクの編集を指定してもリンク先のファイル/URLとパスは同じ物になります。
([表示文字列]と、[ファイル名またはWebページ名]の2つの欄は表示されません…)
なので、名前の変更を行うとエラーになり、出来ませんでした…

おっしゃりたいこと、理解致しました。
どうやらmaruru01さんのバージョンの方が上のようです。
なので、こういう回答になったことをご理解戴いただきたいと思います。m(__)m

では、これ以降はコメントを差し控えさせて戴きます。
muneさん、いっぱいカキコしてごめんなさいね!
    • good
    • 0

あまり、質問者を置いて回答者どうしでやるのもどうかと思いますが、中途半端なのもなんですので。



feverさん

>#4・5に『書き出し』と書いたのがいけなかったですね。
>(しかし、#3では『URLが表示されます』と書いたのですが
B1に、「書き出す」とか「URLが表示される」とかを言っているのではないのです。

例えば、A1に、
http://www.goo.ne.jp/
と入力すると、下線が付き(色も変わり)ハイパーリンクが自動的に設定されます。
これでA1をクリックすると、gooのTopページをIEなどで開きますね。
で、この時B1に、

=A1

とすれば、確かにB1は、
http://www.goo.ne.jp/
と表示されます。
しかし、これはA1のリンクアドレスを表示しているわけではありません。

次に、A1を選択し(クリックするとリンク先を開いてしまうので、隣りのセルから矢印で移動などで)、メニューの[挿入]→[ハイパーリンク]で[ハイパーリンクの編集]ダイアログを表示します。
そこには、
[表示文字列]と、[ファイル名またはWebページ名]の2つの欄があり、両方に、
http://www.goo.ne.jp/
が入力されています。
ここで、私が言っているリンクアドレスというのは、[ファイル名またはWebページ名]の方で、B1に、

=A1

として表示される(書き出される)のは、[表示文字列]の方なのです。
例えば、この[表示文字列]の欄を、
「gooのページ」
と変更します。
すると、A1には、
「gooのページ」
と表示(下線と色も)され、クリックすれば、やはりgooのTopページを開きます。
ところが、この時B1に、

=A1

とすると、表示は、
「gooのページ」
となります。
(形式を選択して貼り付けも同様)
つまり、feverさんの方法ではA1のリンクアドレスを表示させることは出来ないのです。
つまり常に、必ずA1のリンクアドレスを表示させるには(おそらく一般操作や関数では塗りなので)、私のNo.1の回答のようなVBAによる処理になるわけです。
お分かりいただけたでしょうか。
    • good
    • 0

maruru01さん、どうもです。



#4・5に『書き出し』と書いたのがいけなかったですね。
(しかし、#3では『URLが表示されます』と書いたのですが(^^ゞ )

muneさんが、A列と同じ内容の文字列を必要とされるならば、maruru01さんのご指摘があったように、単純にA列をコピーして、B列へ『形式を指定して貼り付け/値』されれば、出来ることでしたね♪(^^ゞ
先に、表示することを連想したものでそうなってしまいました。すみません!
    • good
    • 0

feverさんへ



つまり、私のNo.3の回答の下の3行のことを言っているのですね。
私が言いたかったのは、B1に、

=A1

とした場合、
けっして、A1のリンクアドレスを書き出しているわけではない、あくまで「表示文字列」を書き出しているに過ぎない、
ということです。
言い換えると、A1にハイパーリンクが設定されている場合、A1に表示されている文字列は、
"必ずしもリンクアドレスとは限らない"
ということです。

つまり、操作の意味としては正確ではないけど、結果はちょうど同じになるということです。
そういう意味で、汎用的な回答にはならないということです。
まあ、質問者がfeverさんの方法でOKなら、それでいい訳ですが。

なお、最後の[形式を選択して貼り付け]は、A1を直接コピーしても同じことです。
    • good
    • 0

#3のmaruru01さん、こんにちは。



私はmuneさんが質問した内容を以下のように理解したんですが(^^ゞ
 ・A列にハイパーリンクでURLが貼られている。
 ・B列に、A列のURL(アドレス:文字列)を書き出したい。

なので、B列は
 B1=A1
 B2=A2
 B3=A3
  ・
  ・
  ・
と入力されてから、実際に文字を必要とされるのであれば、B列を一度『=A1』の様に表示させてから、B列ごと『コピー/形式を指定して貼り付け/値』を選んで実行することをお勧めしただけなんですが…
    • good
    • 0

#3のmaruru01さん、こんにちは。



私はmuneさんが質問した内容を以下のように理解したんですが(^^ゞ
 ・A列にハイパーリンクでURLが貼られている。
 ・B列に、A列のURL(アドレス:文字列)を書き出したい。

なので、B列は
 B1=A1
 B2=A2
 B3=A3
  ・
  ・
  ・
と入力されてから、実際に文字を必要とされるのであれば、一度『=A1』で表示させてから、列を『コピー/形式を指定して貼り付け/値』を選んで実行することをお勧めしただけです。
    • good
    • 0

No.2の方の、



>B列に普通に『=A1』とすれば、URLが表示されます。
は、正確には、リンクアドレスではなく、A1の"表示文字列"が表示されます。
例えば、A1を選択して、右クリックのショートカットメニューの[ハイパーリンク]→[ハイパーリンクの編集]を選択します。
すると、[表示文字列]と[ファイル名またはWebページ名]という欄があります。
[ファイル名またはWebページ名]がリンクアドレスで、仮に、[表示文字列]に、
「○○のページ」
のような分かりやすいタイトルを付けることが出来ます。
そうすると、セルA1には、この[表示文字列]が表示され、クリックすると、[ファイル名またはWebページ名]に設定したURLへ飛びます。
そして、B1に、

=A1

とすると、
「○○のページ」
という[表示文字列]が表示されます。
もちろん、A1に直接URLを入力すると、
[表示文字列]=[ファイル名またはWebページ名]
になるので、結果的にはOKなのですが。
    • good
    • 0

A列に入力されているのはハイパーリンクのことでしょうか?



B列に普通に『=A1』とすれば、URLが表示されます。
実際に文字を必要とされるのであれば、一度『=A1』で表示させてから、列を『コピー/形式を指定して貼り付け/値』を選んで実行してあげればOKだと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!