エクセルVBAでハイパーリンクを別ブックに設定できるか

このQ&Aのポイント
  • エクセル2013を使用しているVBA初心者です。ユーザーフォームで入力した内容を別のブックに反映させるマクロがあります。しかし、直接データを入力すると誤ってデータが消えてしまう可能性があるため、ハイパーリンクを使用して別のブックに飛ぶようにしたいと考えています。具体的には、ユーザーフォームにハイパーリンク先を指定するテキストボックスを作成し、入力されたハイパーリンクを別のブックの特定のセルに反映させることです。可能でしょうか?
  • ユーザーフォームで入力した内容を別のブックに反映させるVBAマクロがありますが、直接データを入力すると誤ってデータが消えてしまう可能性があります。そのため、ハイパーリンクを使用して別のブックに飛ぶようにしたいと考えています。具体的には、ユーザーフォームにハイパーリンク先を指定するテキストボックスを作成し、入力されたハイパーリンクを別のブックの特定のセルに反映させる方法を知りたいです。
  • エクセル2013を使用しているVBA初心者です。現在、ユーザーフォームで入力した内容を別のブックに反映させるVBAマクロがあります。しかし、直接データを入力するとデータが消えてしまう可能性があるため、ハイパーリンクを使用して別のブックに飛ぶようにしたいと考えています。具体的には、ユーザーフォームにハイパーリンク先を指定するテキストボックスを作成し、入力されたハイパーリンクを別のブックの特定のセルに反映させる方法を知りたいです。
回答を見る
  • ベストアンサー

エクセルVBA ハイパーリンクを別ブックに

皆さんこんにちは。 エクセル2013使用のVBA初心者です。 ふと「出来るのかな?」と思ったことを質問しておりますので とんちんかんな内容でしたらごめんなさいです。 現在book1.xlsmのユーザーフォームで記入した内容を book2.xlsxの特定のセルに反映させるマクロがあります。 book2にハイパーリンクを施してデータが格納してあるフォルダーに 飛ぶようにしたいのですが 直接book2に個人個人が記入すると誤ってデータを消されてしまう可能性があるので 出来るだけbook2は閲覧とハイパーリンクをクリックするのみにしたいのです。 book1のユーザーフォームに (1)ハイパーリンク先を指定するテキストボックスのようなものを設ける (2)book2の特定のセルに(1)で記入したハイパーリンクを反映させる という事は可能ですか?

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

  • ベストアンサー
  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.1

下記サイトを参考に作成してみては如何でしょう。 http://www.atmarkit.co.jp/ait/articles/1407/01/news029.html VBAはネット上にサンプルコードは多々有りますので、聞くよりネット検索の方が早く情報を得られる事が多いです。

harumama0430
質問者

お礼

dogs_cats さん ご回答ありがとうございます。 アタマの中で出来たら良いな、と思っていた事が可能になりそうな サイトを紹介していただき大変助かりました。 サイトを見ながら挑戦してみます!

関連するQ&A

  • VBA ユーザーフォームの内容を別ブックに反映

    「ユーザーフォーム.xlsm」のファイル名でVBAのユーザーフォームを作成しました。 このユーザーフォームで入力した内容値を別ブックである「ご意見箱.xlsx」のsheet1に反映させたいです。 「ユーザーフォーム.xlsm」と「ご意見箱.xlsx」は、「デスクトップ」上に置いております。 ユーザーフォーム上の「確定保存」というコマンドボタンをクリックしたタイミングで以下のようなイベントの構文で記述しました。 (1)バックグラウンドで「ご意見箱.xlsx」をファイルオープンさせて (2)「ご意見箱.xlsx」の「sheet1」の最終行を取得して (3)最終行の連番を振り (4)オプションボタンの選択値とテキストボックスの内容を書き込み反映して (5)自動で上書き保存して閉じる。 (6)もしオプションボタンの未選択かテキストボックスの未入力があった場合は、警告メッセージを表示させる 現状では(1)のバックグラウンドでのファイルオープンまでは問題なく動作しているのですが、(2)以降で躓いている状況です。 ユーザーフォームの構成と反映先となる「ご意見箱.xlsx」ファイルのsheet1の構成は、画像添付のとおりとなっております。 使用アプリケーション:Excel 2013です。 ここに辿り着くまでにさんざん書籍やWEBなどで調べに調べまくってトライ&エラーを繰り返してきたのですが、もしお分かりになる方がいらっしゃいましたら、皆様にご教示賜りたく何卒宜しくお願い申し上げます。

  • エクセルVBA 違うbookのフォームにデータを

    ひとつのエクセルに BOOK1,2 を 起こして BOOK1 から BOOK2 の 自作フォームの テキストに 値は 送り込めないのでしょうか? シートのセルと ボタンは 可能なのですが・・・ Workbooks("Book2.xlsm").Worksheets("Sheet1").Range("A1:a4").Copy Workbooks("test.xlsm").Worksheets("Sheet2").Range("A1:a4").PasteSpecial Workbooks("test.xlsm").Worksheets("Sheet2").opb2.Value = True フォームには何か書き方が有るのでしょうか

  • EXCEL VBA 別のブックへの転記について

    ユーザーフォームを利用してEXCELにてデータベースを作成しております。 データ入力後は、コマンドボタンをクリックし シートへデータを記録するコードを書きました。 その際に、同フォルダ内に設置している、別のブックを開き 同様にデータを書き込みたいと思っています。 コードを書くにあたり、以下の点を盛り込んでみましたが、エラーは出ないのですが 数値の反映が出来ておらず、必要な別ブックがオープン出来ていない気配です 1、ブックオープン時、開いているかどうか調べ   開いてる   →メッセージなし  データの書き込み   開いていない →ブックを開く    データを書き込む 2.別ブック 書き込むセルは、最下部のセル 3.作業終了後、別のブックは保存して閉じる 4.ブックの指定は、同フォルダ内なので、作業PC移動も考慮し   パス名は、できる限り省略もしくは取得して設定したい  フォルダ名                 「データ記録システム」  ユーザフォームを起動させるブック   「全データ.xls」  別ブック                   「管理用データ.xls」 EXCELは2003を利用していますが、近日中に2007へ移行いたします まだまだ未熟なので、恥ずかしい限りですが どうぞご教授頂けますようよろしくお願いいたします

  • エクセルのBOOK間のリンク

    エクセルでBOOK1とBOOK2があります。 BOOK1のデータが更新されるたびにBOOK2にそれが反映されるようにしたいのですが、そういうことはできるでしょうか。 また、BOOK2には、BOOK1のセルに数値が入力されているものだけを反映させたいのです。 例えば、BOOK1のセルA1~A5で、数値がセルA3とA4にだけ入力されたとします。そうしたら、BOOK2の表のセルC5、C6にそれと同じ数値が反映されるようにしたいのです。 よろしくお願いします。

  • VBAで条件が2つある場合の転記について

    現在Book1.xlsmでユーザーフォームを作成しています。 ここにComboBox7(日付)、ComboBox8(項目)、TextBox11(数値)を配置しています。コンボボックス やテキストボックスに入力があるとBook1.xlsmのSheet1にそれぞれComboBox7はA2、ComboBox8はB1、TextBox11はB2に入力されるようになっています。 ここで、B2の数値を別なブックBook2.xlsxのSheet2に転記したいと考えております。 Book2.xlsxのSheet2では、A列に日付、B1~AZ1に項目が入っています。 Book1.xlsmのSheet1のA2と同じ日付、B1と同じ項目が交差するところにB2の数値を転記したい場合はどのようにしたら良いのか教えていただけませんでしょうか?

  • エクセルVBA ブック間の操作・保存について

    エクセルVBAで次の内容でプログラムしたいと思っていますが、どうもうまくいきません。 1.BOOK1のsheet1のセルC10・セルE10に文字入力 2.1のセルE10に文字入力し確定後、BOOK2が自動的に開く 3.BOOK2・sheet1・セルC4にBOOK1・セルC10の文字を取得 4.BOOK2・sheet1・セルH4にBOOK1・セルE10の文字を取得 5.BOOK2に「(秘)セルC10の文字+(セルE10の文字)・xlsx」で名前を付けて保存 6.BOOK1のsheet1のセルC11・セルE11に文字入力 7.6のセルE11に文字入力し確定後、BOOK2が自動的に開く 8.BOOK2・sheet1・セルC4にBOOK1・セルC11の文字を取得 9.BOOK2・sheet1・セルH4にBOOK1・セルE11の文字を取得 10.BOOK2に「(秘)セルC11の文字+(セルE11の文字).xlsx」で名前を付けて保存  以降BOOK1 セルC12~C29、セルE12~E29まで上記を繰り返す  ※セルC、Eの文字入力は29行まで入力されないこともある という感じでBOOK1の決められたセルに入力された文字を BOOK2へ独立した形で振り分け、それぞれ名前をつけて保存していきたいです。 1~4までは何とかできたのですが、ファイル名をつけて保存と、以降の繰り返しが いろいろ参考にしたのですが、うまくいきません。 初歩的な内容で申し訳ありませんが、ご教授お願い致します。

  • エクセルVBAでブックを開くと処理が終わってしまう

    VBA初心者なのですが、VBAでエクセルブックを開くとVBAの処理が終わってしまいます。理由がわからないのでアドバイスをお願いします。なお、止まってしまう箇所にコメントを入れプログラムを下記しました。また、4000字以上質問できないためプログラムの途中までしか書かれていません。そのため、余分な宣言が多数ありますが無視してください。よろしくお願いいたします。 Option Base 1 Sub 健康診断の郵送() Dim kyoNum() As String Dim b_name As String Dim a_name() As Variant Dim b_address As String Dim a_address() As Variant Dim mailNum() As Variant Dim place() As String Dim banchi() As String Dim ken() As String Dim Adr As String Dim AdrLen As Integer Dim i, j, k, cnt, l, m As Integer Dim ChrCode As Integer Dim cell As Range Dim Book1 As String Dim wb As Workbook Dim Book1_Path As String Dim flag As Boolean 'セルのクリア ThisWorkbook.ActiveSheet.Cells.ClearComments 'セルのプロパティを設定をする With ThisWorkbook.ActiveSheet.Columns("A:B") .ShrinkToFit = True .NumberFormatLocal = "@" .ColumnWidth = 45 End With 'カレントディレクトリのチェンジ(Windows2000以降) CreateObject("WScript.Shell").CurrentDirectory = ThisWorkbook.Path '簡易名称Book1にする Book1 = "Book1.xlsx" 'パスを取得する Book1_Path = ThisWorkbook.Path & "\" & Book1 If Dir(Book1_Path) = "" Then MsgBox "Book1.xlsxファイルが存在しません。", vbExclamation End If '同名ブックのチェック For Each wb In Workbooks If wb.Name = Book1 Then MsgBox "健康診断の郵送.xlsmはBook1を開こうとしています" _ & vbCrLf & "Book1を閉じて再実行してください", vbExclamation Exit Sub End If Next wb Application.ScreenUpdating = False '画面の更新を止める Workbooks.Open Book1_Path '*****←ここで処理が終わってしまう***** 'ブック名を指定して非表示 Application.Windows("Book1.xlsx").Visible = False '後方検索でBook1.xlsxの入力済みセルの行数と列数を取得 With Workbooks("Book1.xlsx").ActiveSheet.UsedRange Book1_MaxRow = .Find("*", , xlValues, , xlByRows, xlPrevious).Row - 2 'データ入力済み行数取得 End With Application.ScreenUpdating = True Workbooks("Book1.xlsx").Activate j = 1 ReDim kyoNum(Book1_MaxRow) ReDim a_name(Book1_MaxRow) ReDim a_address(Book1_MaxRow) ReDim mailNum(Book1_MaxRow) ReDim ken(Book1_MaxRow) ReDim place(Book1_MaxRow) ReDim banchi(Book1_MaxRow)

  • エクセル ブック間で同一データのチェックしたいのですが・・

    請求書のフォームのようなものを作成しています。 book1にはA列:IDNO. B列:商品名 C列:金額・・・などとデータが保存されています。件数が2000ちかくあります。 book2で、請求明細のようなものを作りたく、Vlookupを使い、IDNO.を打ち込むとbook1にある、データが反映されるようになりました。 そこで、教えていただきたいのですが。・・ book2でIDNO.を入力したときに 同一の book1データ内にあるIDNO.の となりの(B列:商品名)セルに、色をつけることは出来ますでしょうか?   質問がわかりづらくてごめんなさい。ぜひ教えてください。m(__)m

  • 別なブックのセルのリンク内容を結合したい

    =[Book1.xls]sheet1!D20 & [Book1.xls]sheet1!D21とBook2のセルに代入するとそのまま表示(数式が)されます。ところが&でつなげずに別なセルにそれぞれリンクを貼り付けるとリンク元の内容が反映されます。 同じブック内のセルのリンクでは問題ないのですが、ブックをまたぐと不可能なのでしょうか?

  • Excel ユーザー定義関数入力方法

    ユーザー定義関数はその関数を作ったファイルでないと セルに直接入力しても関数は出ないのですか 例えば Book1.xlsxとmacro.xlsmというファイルがあります。 macro.xlsmファイルにユーザー定義関数を作成しました。 macro.xlsmだとセルに直接入力しても作成した関数が候補が出ます。 Book1.xlsxだと関数の挿入から見つけないといけません。 macro.xlsmのファイルのThisWorkbookには Private Sub Workbook_Open() Application.MacroOptions _ Macro:="aaa", _ Description:="説明" End Sub と入ってます。

専門家に質問してみよう