- 締切済み
ACCESSにEXCELのハイパーリンクURLの取込
ACCESS2002でのハイパーリンクURL一覧を取得したい。 EXCELワークシートのセル項目に表示内容とハイパーリンクURLが設定されています。 このワークシートをインポートすると表示内容しか取得できません。 そのURLも同時に取得する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
Excelから、mdbに書込ましょう。 下記はA1セルに入っているハイパーリンクを読み込んで、ハイパーリンク型のフィールド1個だけのmdbに追加するコードです。VBAエディタのツール/参照設定で、ADOに参照設定してください。2.xの部分は、新しい方から選択してください。 ????の部分は環境に合わせて書き換えてください。 詳細は参考URLでお勉強してください。 'Microsoft ActiveX Data Object 2.x Libraryに参照設定 'Helpによると、ハイパーリンク型のフィールドには、次の順序で値を格納する '---------------------------------------------------------------- '表示する文字列#リンク対象アドレス#サブアドレス#ポップアップヒント '---------------------------------------------------------------- Sub writeDataTest() Dim myConn As ADODB.Connection Dim myConStr As String Dim tableName As String Dim myDBFName As String Dim myPswd As String myDBFName = "F:\Documents and Settings\????\My Documents\????.mdb" myPswd = "" myConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & myDBFName & ";Jet OLEDB:Database Password=" & myPswd & ";" tableName = "?????" Set myConn = New ADODB.Connection myConn.Open myConStr On Error GoTo ConnCloseHdl With New ADODB.Recordset .Open tableName, myConn, , adLockOptimistic On Error GoTo RSCloseHdl .AddNew 'ここでは表示する文字を、正味のURLに設定している .Fields(0) = "#" & Range("a1").Hyperlinks.Item(1).Address & "#" & _ Range("a1").Hyperlinks.Item(1).Address .Update RSCloseHdl: .Close End With ConnCloseHdl: myConn.Close Set myConn = Nothing If Err.Number <> 0 Then MsgBox (Err.Number & " " & Err.Description) End If End Sub
- takatosen
- ベストアンサー率37% (378/1016)
質問の意味がイマイチ理解できないのでハズしてるかもしれませんが。 AccessにインポートしたURLを文字列からハイパーリンクにして,クリックすると該当のページに飛べるようにしたいということでしょうか。 そうであれば,URLが記載されているフィールドのデータ形式をハイパーリンクにしてください。 デザインビューから,変更したいフィールドのデータ型でハイパーリンクを選択して変更します。
補足
早速の回答ありがとうございます。 ACCESSのフィールドをハイパーリンクにして、インポートすると、 EXCELの表示内容がそのフィールドに設定されているだけです。 このため、このフィールドをクリックしてもEXCELでのクリックのように飛べません。 目的は項目の一覧を表示し、ダブルクリックにより内容を表示させようというものです。 たとえば ジャンル・項目・URLのテーブルを作り、ジャンルを選択表示し、その後目的の項目を選択して、URLにジャンプさせようと考えています。 このデータはEXCELで作成したものはありますが、ACCESSにとりこみ 付加情報を加味して利用したいと考えています。 いいやり方をお教えください。
お礼
ありがとうございました。 参考になりました。
補足
Hyperlinks.Item(1).addressを使えばいいのですね 参考になりました。 以下のFUNCTIONをEXCELの標準モジュールにセットして、別カラムに =showlink("a2") のようにセットすればよいことがわかりました。 Function showlink(POS As String) If Range(POS).Hyperlinks.Count < 1 Then Exit Function showlink = Range(POS).Hyperlinks.Item(1).Address End Function