[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リンクのホルダ名の変更』(つる)
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.