[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リンクのホルダ名の変更』(つる)
A1を「='C:\Documents\PCUser\デスクトップ\データ\2009\[02.xls]Sheet1'!A1」の様にリンクさせています。
A2に2008と入力すると数式中の2009が2008に変化するように設定できないでしょうか?
エクセル2003年使用
『リンクのホルダ名の変更』(つる)
A1のリンクを下記の用に設定しています。
='C:\Documents\PCUser\デスクトップ\データ\2009\[02.xls]Sheet1'!A1
A2に2008と入力すると数式中の2009が2008に変化するように設定できないでしょうか?
エクセル2003年使用
セルに入力するのではなく Ctrl + H で置換してはどうでしょう?
(HANA)
有難うございます。 早速やって見ます。
VBAでユーザー定義関数を作成する方法です。
標準のジュール(Module1)に
'============================================================= Function getoutrng(ByVal bkpath As String, ByVal shtnm As String, ByVal rng As Range) As Variant Dim sql As String Dim radd As String Dim rs As Object getoutrng = [na()] If open_ado_excel(bkpath) = 0 Then If InStr(rng.Address(False, False), ":") = 0 Then radd = rng.Address(False, False) & ":" & rng.Address(False, False) Else radd = rng.Address(False, False) End If sql = "SELECT * FROM [" & shtnm & "$" & radd & "]" If get_exec_sql(sql, rs) = 0 Then getoutrng = rs.fields(0).Value On Error Resume Next rs.Close On Error GoTo 0 Call close_ado Set rs = Nothing End If End If End Function
別の標準モジュール(Module2)にADO関連プロシジャー群
'============================================================= Option Explicit '============================================================================== Private cn As Object '============================================================================== Function open_ado_excel(book_fullname As String) As Long Dim link_opt As String On Error Resume Next link_opt = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & book_fullname & ";" & _ "Extended Properties='Excel 8.0; HDR=No'" Set cn = CreateObject("ADODB.Connection") cn.Open link_opt open_ado_excel = Err.Number On Error GoTo 0 End Function '============================================================================== Sub close_ado() On Error Resume Next cn.Close Set cn = Nothing On Error GoTo 0 End Sub '============================================================================== Function get_exec_sql(sql_str, rs As Object) As Long On Error Resume Next Set rs = cn.Execute(sql_str) get_exec_sql = Err.Number On Error GoTo 0 End Function
関数名 getoutrng
機能 指定された外部ブックのセルの値を取り出す
呼び出し形式 =getoutrng(bkpath,shtnm,rng)
パラメータ
bkpath 文字列 -- データを取得したいブックのフルパス shtnm 文字列 -- bkpathで指定したブックのデータを取得したいシート名 rng オブジェクト -- データを取得したいセル
使用例
セルB2 に =getoutrng("C:\Documents\PCUser\デスクトップ\データ\" & $a$2 & "\02.xls","sheet1",A1)
セルA2には、 2008とか2009と指定してください。
A2が2008の時は、
C:\Documents\PCUser\デスクトップ\データ\2008\02.xls というブックの Sheet1というシートにあるセルA1の値を取得できます。
VBAを知っているなら、試してみてください
ichinose
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.