advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 71 for ExecuteExcel4Macro 閉じた|開いて|開かず (0.012 sec.)
executeexcel4macro (140), 閉じた (629), 開いて (4904), 開かず (263)
[[20130710052937]]
#score: 14119
@digest: bba40c01c2b51d4a05dc69f29e654be6
@id: 62914
@mdate: 2013-07-10T01:34:11Z
@size: 2155
@type: text/plain
#keywords: xref (41044), pull (19867), cleanup (12932), xlwb (12325), xlerrref (11311), xlapp (7078), 20100108094343 (6766), スb1 (6058), test01 (5602), 名c1 (4226), test02 (4077), cverr (2930), ジ等 (2726), 「te (2399), executeexcel4macro (2389), may (2382), instrrev (2275), のd5 (2225), 合参 (2009), isarray (1266), 別フ (1220), instr (1002), function (827), cstr (808), nothing (644), ル値 (610), sheet3 (577), evaluate (547), error (472), ルパ (456), then (429), ク名 (420)
『別ファイルのセルを返す』(May)
今「May.xls」というファイルを開いています。 「May.xls」のSheet1のA1に「test01」と入力すると隣のB1セルに、 別フォルダに保存されている「test01.xls」のSheet3のD5セル値が表示され、 また「test02」と入力すると「test02.xls」のSheet3のD5セル値を表示させたいです。 INDIRECT関数では「testXX.xls」が開いていないとエラーになってしまうので無理でした。 関数で他のやり方があるのか、またはマクロを組む場合参考となるページ等をご教示願えれば幸いです。 宜しくお願いします。 ---- [[20100108094343]] A1 = c:¥test¥ の様な実際のファイルパス B1 = test01 ブック名 C1 = sheet3 シート名 が夫々記入されている前提で =Pull("'"&A1&"¥["&B1&".xls]"&C1&"'!A1") 標準モジュールへ Function Pull(xref As String) As Variant Dim xlapp As Object, xlwb As Workbook Dim b As String, r As Range, C As Range, n As Long n = InStrRev(xref, "¥") If n > 0 Then If Mid(xref, n, 2) = "¥[" Then b = Left(xref, n) n = InStr(n + 2, xref, "]") - n - 2 If n > 0 Then b = b & Mid(xref, Len(b) + 2, n) Else n = InStrRev(Len(xref), xref, "!") If n > 0 Then b = Left(xref, n - 1) End If If Left(b, 1) = "'" Then b = Mid(b, 2) On Error Resume Next If n > 0 Then If Dir(b) = "" Then n = 0 Err.Clear On Error GoTo 0 End If If n <= 0 Then Pull = CVErr(xlErrRef) Exit Function End If Pull = Evaluate(xref) If IsArray(Pull) Then Exit Function If CStr(Pull) = CStr(CVErr(xlErrRef)) Then On Error GoTo CleanUp Set xlapp = CreateObject("Excel.Application") Set xlwb = xlapp.Workbooks.Add On Error Resume Next n = InStr(InStr(1, xref, "]") + 1, xref, "!") b = Mid(xref, 1, n) Set r = xlwb.Sheets(1).Range(Mid(xref, n + 1)) If r Is Nothing Then Pull = xlapp.ExecuteExcel4Macro(xref) Else For Each C In r C.Value = xlapp.ExecuteExcel4Macro(b & C.Address(1, 1, xlR1C1)) Next C Pull = r.Value End If CleanUp: If Not xlwb Is Nothing Then xlwb.Close 0 If Not xlapp Is Nothing Then xlapp.Quit Set xlapp = Nothing End If End Function (seiya) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201307/20130710052937.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97056 documents and 608292 words.

訪問者:カウンタValid HTML 4.01 Transitional