プロが教える店舗&オフィスのセキュリティ対策術

VBで可能なのではないかと思うのですが、VBはまったくやったことがありません。
可能でしたらコードを書いて頂けると本当にたすかります。


ハイパーリンク先のURLパターンは常に決まっていて、以下の通りです
http://page5.auctions.yahoo.co.jp/jp/show/contac …セルの値
 ※要はイコール記号の後が変わるだけです


例:セルA1にa123456と入力すると自動的にA1にハイパーリンクが設定される
セルの表示はa123456、
ハイパーリンクは、
http://page5.auctions.yahoo.co.jp/jp/show/contac …

例:セルA2にb987654と入力すると自動的にA2にハイパーリンクが設定される
セルの表示はb987654、
ハイパーリンクは、
http://page5.auctions.yahoo.co.jp/jp/show/contac …

例:セルA3に564879と入力すると自動的にA3にハイパーリンクが設定される
セルの表示は564879、
ハイパーリンクは、
http://page5.auctions.yahoo.co.jp/jp/show/contac …

以上のように自動設定させれるにはどうしたらよいかご教授下さい。
よろしくお願いします。

A 回答 (6件)

[回答番号:No.2] の DOUGLAS_ です。



>VBで可能なのではないかと思うのですが、VBはまったくやったことがありません。
 回答がかぶってしまいましたので、VBAの例をお一つ。

1)シートタブを右クリック [コードの表示(V)] をクリック。
2)現われたコードウィンドウ(Visual Basic Editor)に下記コードをコピペ。
3)[Alt] + [F4] でVBE(Visual Basic Editor)を閉じます。
4)以上で、A列に「a123456」と入力されたら「a123456」と表示される
http://page5.auctions.yahoo.co.jp/jp/show/contac …
へのハイパーリンクが設定されます。

 複数の範囲を指定してデータの貼り付けが行なわれたような場合でも、A列だけが反応するように書いております。
 このマクロ(VBA)が不要になったときは、
5)シートタブを右クリック [コードの表示(V)] をクリック。
6)現われたコードウィンドウ(Visual Basic Editor)の(2)で貼り付けた部分を削除。
7)[Alt] + [F4] でVBE(Visual Basic Editor)を閉じます。
でOKです。

 なお、「VBA」は「Visual Basic for Application」の略で「VBE」はそのエディタ(編集画面)の略です。

'/ ̄/ ̄ この下から / ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄/ ̄
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim myURL As String
 Dim myRng As Range
 myURL = "http" & "://page5.auctions.yahoo.co.jp/jp/show/contact?aID="
 For Each myRng In Target
  If myRng.Column = 1 And myRng.Value <> "" Then
   ActiveSheet.Hyperlinks.Add Anchor:=myRng, _
    Address:=myURL & myRng.Value, _
    TextToDisplay:=myRng.Value
  End If
 Next
End Sub
'_/_/ この上まで _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    • good
    • 0
この回答へのお礼

大変親切で私でもなんとなく理解できる(コード以外)書き方に感動です。非常に使い勝手の良い仕様にしてくれているのも感謝感謝です。私の説明不足で若干思惑と違う部分が出てきましたので後日補足か質問をするかもしれませんがよろしくお願いします。

お礼日時:2009/04/08 14:09

No.3のコードを修正しました。


これでエラーなしで処理されると思います。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static SlctCell As Object
Dim str As String
If (SlctCell Is Nothing) Then
Set SlctCell = ActiveCell
End If
str = SlctCell.Value
If (SlctCell <> "") Then
ActiveSheet.Hyperlinks.Add Anchor:=SlctCell, Address:= _
"ハイパーリンクのリンク先" + str, TextToDisplay:=str
End If
Set SlctCell = ActiveCell
End Sub
    • good
    • 0
この回答へのお礼

やってみたら出来ました!私はVB無知なのでこれは神でした。当方の説明不足で若干思惑と違う部分が出てきましたので後日改めて質問するかもしれません。本当に感謝です!

お礼日時:2009/04/08 14:06

すいません。

No3ではエラーが出てしまいます。
    • good
    • 0

VBAのコードでハイパーリンクを設定するには


ツールー>マクロー>Visual Basic Editorを選択します。
左上のプロジェクトエクスプローラから使用するシート名をダブルクリックします。
もしプロジェクトエクスプローラがなければメニューの表示から選択してください。

以下のコードを入力

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static SlctCell As Object
If (SlctCell Is Nothing) Then
Set SlctCell = ActiveCell
End If
If (SlctCell <> "") Then
ActiveSheet.Hyperlinks.Add Anchor:=SlctCell, Address:= _
"ハイパーリンクのリンク先" + SlctCell.Value, TextToDisplay:=SlctCell.Value
End If
Set SlctCell = ActiveCell
End Sub

これで、セルに何か文字を入力して確定すれば自動的にハイパーリンクがつきます。
    • good
    • 0

>VBはまったくやったことがありません。


 VBAで簡単にできることですが、[HYPERLINK] 関数を使ってB1にでもリンクを作った方が簡単ですね。

=HYPERLINK("http://page5.auctions.yahoo.co.jp/jp/show/contac … & A1,A1)
    • good
    • 0
この回答へのお礼

ありがとうございます。これも応用して使えそうなので感謝です。

お礼日時:2009/04/08 14:02

ここはコーディング承り所ではないので、HYPERLINK関数で我慢してください。

But,ご希望のURLはセキュリティの問題でExcelからはアクセスできないかもしれません。(LOGINしていればいけるのかな?)
.....A.........................B
1...a123456........ =HYPERLINK("http://page5.auctions.yahoo.co.jp/jp/show/contac … & A1,A1)
2...qa4861580... =HYPERLINK("http://okwave.jp/" & A2 & ".html",A2)
VBAがご希望なら、ハイパーリンク設定を自動記録していじってください。試しにやってみましたが、セキュリティのエラーは同様でした。
    • good
    • 0

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