現在下記のようなコードでテストしています。
Sub Sample()
Dim TargetBook As Workbook
Set TargetBook = Workbooks.Open("Book2.xls")
TargetBook.Sheets("Sheet1").Cells(1, 5) = Cells(1, 1)
TargetBook.Close
End Sub
Book2を開いてセルの読み書きはテストできました。
これをBook2をopenせず閉じた状態で操作したいと思っています。
Workbooksの表示されるメソッドを色々試してみますが出来ません。
OpenDatabaseが使用できるのかと思いますが、出来ません。
ご指導よろしくお願いします。
No.1ベストアンサー
- 回答日時:
Sub Sample2()
Dim myPath As String
Dim fn As String
myPath = Application.DefaultFilePath 'パス
fn = "Book2.xls" 'ファイル名
'R1C1型で書く
ret = Application.ExecuteExcel4Macro("'" & myPath & "[" & fn & "]Sheet1'!R1C1")
ThisWorkbook.Sheets("Sheet1").Cells(1, 5) = ret
End Sub
他にも、
>OpenDatabaseが使用できる
ODBC(Open Database Connectivity)という意味でしたら、[外部データの取り込み]から操作します。ただし、その使用する列全体を使用してしまいますので、取り込みには、その以下にデータを置くことは出来ない欠点があります。
Office をインストールしていれば、Jet はインストールしていますから、当然、ADODBなどは利用できますが、意外に面倒かもしれません。フィールドがなくても取得できます。
この回答への補足
bookを閉じた状態で読み込みする事が出来ました。
逆に書き込みを行うとした時にエラー424 オブジェクトが必要ですと出ます。
このメソッドで書き込みは出来ないのでしょうか?
Application.ExecuteExcel4Macro("'" & myPath & "[" & fn & "]Sheet1'!R1C1") = "test"
No.4
- 回答日時:
#3の追伸です。
ここをご覧になってください。
http://support.microsoft.com/kb/278973/ja
ADO を使用して Excel ブックのデータの読み取りおよび書き込みを行う方法 (ExcelADO)
サンプルファイル(ExcelADO.exe)もおいてあります。
No.3
- 回答日時:
>逆に書き込みを行うとした時にエラー424 オブジェクトが必要ですと出ます。
>このメソッドで書き込みは出来ないのでしょうか?
ExecuteExcel4Macro(一般数式) Index 関数の利用も可能です。配列自体は取り出せませんが、配列からひとつの解を求めることは可能です。
これは読み出し専用です。書き込みするには、#2さんの方法や、ADODBやDAOを使いますが、ADODBをキーワードにして、Web検索をすればヒットするかとは思います。しかし、私自身、数年に1度書くかしないか程度で、実務的ではないし、しいてやれないことはない、という程度です。あまり、掲示板で披露した記憶がありません。
また、ADODBは、Excelの場合は、内部オブジェクトが備わっていないので、インスタンスを生成してから、値取得の段階に入っていきます。したがって、その時オーバーヘッドが掛かり、あまり思ったほどの効果はありません。
私からのアドバイスとしては、標準的な、ファイルを開いて、閉じる方法で良いのではないかと思います。
特に、#2さんの
Application.ScreenUpdating = False
値-取得・値-書込
Application.ScreenUpdating = True
で、画面の変更のロスが減りますので、その分、時間が短縮できます。
私自身では、ADODB等で取得する場合は、データベースファイルに限ります。やはり、ファイルをOpenメソッドで開けて、それで書きこんで、保存するというオーソドックスな方法を使います。作成中に、目視して確認出来るという利点もあります。
なお、変則的には、私は、CreateObject("Excel.Application") というオートメーション化して使う場合があります。他の開いているブックに影響を受けないのと、マクロセキュリティに影響を受けない利点があります。しかし、これは、気を付けないと、メモリに残してしまうというミスを起こすことがあります。もうひとつは、絶対的とは言いませんが、.Value プロパティの省略などは、しないように注意しなければなりません。
No.2
- 回答日時:
開かないで操作する方法は存じませんが、開いたことを気づかせずに操作するなら以下でどうでしょう?
マクロを書いたBOOKのアクティブなシートのA1セルの値を転記するなら
Sub Sample01()
Dim TargetBook As Workbook
Dim ws As Worksheet
Set TargetBook = Workbooks.Open("Book2.xls")
Set ws = ThisWorkbook.ActiveSheet
With Application
.ScreenUpdating = False
TargetBook.Sheets("Sheet1").Cells(1, 5) = ws.Cells(1, 1)
TargetBook.Close (True)
.ScreenUpdating = True
End With
End Sub
そうではなく、BOOK2のシート1のA1セルの値を転記するなら
Sub Sample02()
Dim TargetBook As Workbook
Set TargetBook = Workbooks.Open("Book2.xls")
Application.ScreenUpdating = False
With TargetBook
.Sheets("Sheet1").Cells(1, 5) = .Sheets("Sheet1").Cells(1, 1)
.Close (True)
End With
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
VBAで複数のブックを開かずに処理する方法
Visual Basic(VBA)
-
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
-
4
ファイルを開かずにマクロを実行
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
保存ブックを開かずコピーペーストするマクロ作成について
Excel(エクセル)
-
7
リンクをアップデートするしないの自動化
Excel(エクセル)
-
8
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
9
参照先のブックを開かずに内容をコピーしたい
Excel(エクセル)
-
10
エクセル(マクロ)のファイルを開くのに時間がかかる
その他(Microsoft Office)
-
11
excel vba 非表示のシートに入力するには?
その他(OS)
-
12
VBAでCSVファイルの特定行を書き換える方法はあるのでしょうか?
その他(プログラミング・Web制作)
-
13
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
14
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
15
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
16
本当にPublicな変数(配列で)
Visual Basic(VBA)
-
17
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
18
EXCELマクロコードを、それを含むファイルを開かずに編集したい
Excel(エクセル)
-
19
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
20
VBA 数式を残して値をクリアについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
白血球が多いとどんな心配があ...
-
彼女のことが好きすぎて彼女の...
-
EXCELで条件付き書式で空白セル...
-
エクセルで数式の答えを数値と...
-
EXCELで式からグラフを描くには?
-
2つの数値のうち、数値が小さい...
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
エクセル指定した範囲からラン...
-
MIN関数で空白セルを無視したい...
-
EXCELの条件付き書式で数式を空...
-
風俗店へ行く前のご飯
-
これって喉仏ですか? 私は女性...
-
エクセルで空白セルを含む列の...
-
至急!尿検査前日にオナニーし...
-
エクセルのラベルの値(文字列...
-
エクセルでエラーが出て困って...
-
ワードのページ番号をもっと下...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
精液の落とし方を教えてください
-
勃起する時って痛いんですか? ...
-
2つの数値のうち、数値が小さい...
-
エクセル指定した範囲からラン...
-
エクセルで数式の答えを数値と...
-
これって喉仏ですか? 私は女性...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
EXCELで式からグラフを描くには?
-
イタリアから帰国する際、肉製...
-
エクセルのラベルの値(文字列...
-
Excel 0目標に対して数字があ...
-
ある範囲のセルから任意の値を...
-
風俗店へ行く前のご飯
-
リンク先のファイルを開かなく...
-
甲状腺が腫れているが血液検査...
おすすめ情報