質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

1回答

526閲覧

vba B1に記載されてる番号の書類をハイパーリンクにしてV2に入力したい

lolitacon

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2019/04/27 06:43

前提・実現したいこと

excelでsheet2で入力したidをsheet1の”B2”に入力したあと、
sheet1の"V2"のセルにid番号と同じpdfのファイルパスをハイパーリンクにして入力したい。

例)
\Kyoutuu-hp\共通サーバ\ベータシステム\Bcode書類(B2に入力されたid番号string) .pdf

書類のタイトルは(B2に入力されたid番号sring).pdf です。

id 10001
書類 10001.pdf

発生している問題・エラーメッセージ

実行時エラーで先に進みません。

実行時エラー'1004': アプリケーション定義またはオブジェクト定義のエラーです。

該当のソースコード

ExcelVBA

1i = Range("$B$1").Value 2 Sheets(1).Range("V2").Hyperlinks.Add Anchor:=Range("V2"), Adress:="\Kyoutuu-hp\共通サーバ\ベータシステム\Bcode書類\" & i & ".pdf", TextToDisply:=Range("A2").Value 3

試したこと

最初は i を定義せずそのままいれてました。

ExcelVBA

1Sheets(1).Range("V2").Hyperlinks.Add Anchor:=Range("V2"), Adress:="\Kyoutuu-hp\共通サーバ\ベータシステム\Bcode書類\" & Range("$B$1") & ".pdf", TextToDisply:=Range("A2").Value

" と & 使わない場合もやりました。

サンプルコードも漁りましたが、
指定セル丸ごとurlにする方法しかみつかりませんでした。

マクロじゃない方法もさがしてみましたが、うまくいきません。
(行をコピーして挿入する方法)

####よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ExcelVBA

1Sub test() 2 Dim sId As String 3 Dim sFullPath As String 4 5 sId = Worksheets("Sheet2").Range("B2").Text 6 sFullPath = "\Kyoutuu-hp\共通サーバ\ベータシステム\Bcode書類\XXXXX.pdf" 7 sFullPath = Replace(sFullPath, "XXXXX", sId) 8 9 Worksheets("Sheet1").Hyperlinks.Add _ 10 Anchor:=Worksheets("Sheet1").Range("V2"), _ 11 Address:=sFullPath, _ 12 TextToDisplay:=sId 13 14End Sub

こんな感じでしょうか。。。

アプリケーション定義またはオブジェクト定義のエラーです。

えっと、マクロの記録をしてみるとわかると思いますが、
ハイパーリンクの挿入の命令は、セル範囲ではなく、
ワークシートに対して行います。
セル範囲(Sheets(1).Range("V2"))に対して、
.Hyperlinks.Add と命令しているので、
「セル範囲(オブジェクトの)はそういう命令を受け付けるよう定義されていません(定義エラー)。」と、
エラーメッセージは言っています。

なので、
対象シートに対して、ハイパーリンクの挿入の命令をし、
第1引数(ひきすう)のAnchorにどの位置のセルに置くかを指定してください。

以下、ヘルプからの抜粋です。

Excel 開発者用リファレンス
Hyperlinks.Add メソッド
指定された範囲または図形にハイパーリンクを追加します。
構文

式.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

式 Hyperlinks オブジェクトを表す変数です。

パラメーター

名前 必須/オプション データ型 説明
Anchor 必須 オブジェクト型 (Object) ハイパーリンクのアンカーを指定します。Range オブジェクトまたは Shape オブジェクトを指定します。
Address 必須 文字列型 (String) ハイパーリンクのアドレスを指定します。
SubAddress オプション バリアント型 (Variant) ハイパーリンクのサブアドレスを指定します。
ScreenTip オプション バリアント型 (Variant) ハイパーリンク上をマウス ポインターで指した場合に表示されるヒントを指定します。
TextToDisplay オプション バリアント型 (Variant) ハイパーリンクで表示されるテキストを指定します。

戻り値
新しいハイパーリンクを表す Hyperlink オブジェクト。

備考

引数 TextToDisplay を指定する場合、テキストには文字列を指定する必要があります。

投稿2019/04/27 08:48

編集2019/04/27 08:51
mattuwan

総合スコア2136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問