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)
[[20100108094343]]
#score: 14119
@digest: 4cb72391d715969e6ab3f821ef5f847c
@id: 47096
@mdate: 2010-09-28T10:43:03Z
@size: 2909
@type: text/plain
#keywords: xref (41044), pull (19867), cleanup (12932), xlwb (12325), xlerrref (11311), xlapp (7078), executeexcel4macro (3583), instrrev (2275), 右空 (2239), ブ上 (2202), ルc2 (1630), 合, (1208), 白部 (1094), ファ (1089), 用例 (1046), instr (1002), ル関 (964), ァイ (843), function (827), 記コ (823), ル名 (800), 数等 (713), イル (706), nothing (644), ル] (628), error (472), ルパ (456), 閉じ (448), 残念 (438), then (429), イブ (348), 頑張 (329)
『別ファイル名をsheet上で指定してそのファイルを閉じた状態でデータを抽出したい』(るっちん)
初歩的なことかもしれませんが質問をさせて下さい。 例えばCドライブ上にある別のエクセルファイルがいくつかあり、 そのファイルの名前が500、550、700…といった形で保存されているとします。 この状態でA列にそのファイル名と同じ数字を入力すると、 B列にそのファイル名のあるセルの数値が表示されるようにしたいのですが どうすれば良いでしょうか? とりあえずこんな式を入れてみましたがダメでした。 ='["&A1&".xls]'sheet1!$C$25 ファイルは閉じたままで出力をしたいです。 よろしくお願い致します。 ---- 閉じたファイルのデータはIndirect関数等のエクセル関数では取得できません。 とりあえずUPしておきます。 下記コードはHarlan Grove氏が書かれたものです。 1) Alt + F11 でVBEを起動 2) [挿入] - [標準モジュール] 右空白部分に下記コードを貼り付けてVBEを閉じる。 3) 使用例 A1が ["&A1&".xls]'sheet1!$C$25 であれば =pull("'c:¥test¥"&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 'needed by .ExecuteExcel4Macro 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) ---- 回答ありがとうございます。 残念ながらうまくいきませんでしたが、設定などがおかしいのかもしれませんのでちょっと頑張ってみます。 ---- A1にファイル名を入力して,(例えば,sample.xls) =pull("'c:¥test¥["&A1&"]sheet1'!$C$25) としたら上手くいきました. (この場合,sample.xlsのsheet1のセルC25の値を参照します.) hyouga ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201001/20100108094343.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97056 documents and 608292 words.

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