• ベストアンサー

「Excel」Microsoft Visual Basicで教えてください。

本で調べてもインターネットでも、 ExcelのMicrosoft Visual Basicで下記の内容の処理がわかりません。 困ってます。 わかる方、教えてください。よろしくお願いします。 <内容> “あああ.xls” [sheet1]にデータがあれば、“かかか.xls” [sheet1]にデータの値をコピーする。 なければ、「データがありません」とメッセージボックスをだしてキャンセル。

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

下記でご希望の動作をするかと思います。 なお、双方のシートが開いていないとエラーになりますので、細かな仕様は自身で改造して調整してください。 Sub ううう() Dim Flg As Boolean Dim c As Variant For Each c In Workbooks("あああ.xls").Sheets("sheet1").UsedRange If c.Value <> "" Then Flg = True Exit For End If Next If Flg Then Workbooks("あああ.xls").Sheets("sheet1").Cells.Copy Workbooks("かかか.xls").Sheets("sheet1").Cells.PasteSpecial Else MsgBox "データがありません" End If End Sub

mirai3460
質問者

お礼

早速、回答ありがとうございます。 助かりました。

その他の回答 (1)

回答No.1

はじめまして。 内容は分かるのですが、処理を分けるのと もう少し詳細が分かればお答え出来るかと 思います。 >“あああ.xls” [sheet1]にデータがあれば・・ 対象のデータは1つのセル内なのか、 シート全体なのか、空白シートでない事を 示すのか・・。 意味が広すぎます。 >“かかか.xls” [sheet1]にデータの・・ 閉じているブックですか、既に開いてるブックですか? >データがあれば・・ 何と比べるのですか?

関連するQ&A

  • 【EXCEL VBA】Visual Basic Editorについて

    お世話になります。 EXCELで「Visual Basic Editor」を開くと、 左側に下記が表示されます。 Microsoft Excel Objects > Sheet1、Sheet2、Sheet3、ThisWorkBook フォーム > UserForm1 標準モジュール > Module1 クラス モジュール > Class1 Sheet1やUserForm1、Module1、Class1にそれぞれコードを 入力できますが、違い、使い分けについて教えてほしいです。 どれにコードを書いていけばいいか分からず困っています。 よろしくお願いします。

  • Visual Basic 2005

    Visual Basic 2005と Visual Basic 6.0というのは違いはありますか ?そんなには変わらないですか?あと、Microsoft Visual studio 2005の環境を使っているのですが、買った本がVisual Basic 6.0で内容が全然違っていたので、Visual Basic 2005の本を買って勉強したいと思っています。そこで、Visual Basic 6.0との違いが聞きたいのです。教えてください。宜しくお願いします。

  • Microsoft Office メッセージについて

    質問させて頂きます。 Microsoft Office のメッセージに下記の様なメッセージが時々出ます。意味がよくわかりません。どなたか教えていただけたら幸いです。 メッセージ内容↓ Officeクリップボードは12個のアイテムしか保持できません。このアイテムをコピーすると、最初のアイテムが削除されます。コピーしますか? OK 又は キャンセル どちらかを選ぶようになっています。

  • VB6からEXCEL2007へ出力は可能?

    現在、下記環境で作成したクラサバのアプリケーションを運用しています。 開発言語:Visual Basic 6.0 SP6 DB:Oracle8i DB 8.1.6 動作環境(OS):Windows2000、WindowsXP   (OFFICE):2000、2002、2003(Excel) このアプリケーションの中で、「Oracleからデータ取得→Excelに出力」という帳票作成機能があります。 マシンの増設を行うことになったのですが、OSはWindowsXPなのですが、OFFICEが2007がプリインストールされているものを導入する予定です。 そこで質問なのですが、現在のアプリケーションのままExcel2007に出力されますでしょうか? (簡単な処理フローは、1.Oracleからデータ取得→2.Excelテンプレートファイル(.xls)コピー→3.コピーしたExcelファイルに1.で取得した値を出力して保存というものです。)

  • EXCEL2007でシートをコピーすると、オブジェクトの大きさが変わってしまいます。

    エクセル初心者です。過去に同じような質問がありましたら申し訳ありません。 WindowsVista・EXCEL2007を使用しています。 「.xls」で作成したエクセルデータのシートをコピー・移動すると 元シートに貼り付けてあったオブジェクトが大きくなってしまいます。 これは何が原因で、どうしたら大きさが変わらずコピーすることができるでしょうか?

  • Microsoft Queryについて

    Wordの差込印刷で差し込むExcelのデータファイルをクエリを使って絞り込もうとしたのですが、 ・「データソースの選択ダイアログボックス」<新規データソース>を選択 ・〔アクセスするデータベースの種類に対応するドライバ〕を”Microsoft Excel Driver(*.xls)”を選択 ・〔接続するデータベース〕に任意のExcelファイルを指定 すると【このデータソースには、表示できるテーブルはありません。】とのメッセージが出ます。 ExcelファイルはA列から順に番号・名前・住所等のK列までのデータファイルなのですが…。 全く原因がわかりません。 何かヒントでもいただければと嬉しいのですが。

  • 別のブックのセルの値をコピーするマクロについて

    ExcelのVBAのマクロに関する質問です。 複数のブックのセルの値をコピーするマクロについての質問なのですが、現在以下のファイルがあります。 サンプル1.xls サンプル2.xls サンプル3.xls データ.xls そして、 サンプル1のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA1~D1まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA1~D1まで、 サンプル2のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA2~D2まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA2~D2まで、 サンプル3のセルA1~D1までの値をデータ.xlsファイルのシート1のセルA3~D3まで、 セルA2~D2までの値をデータデータ.xlsファイルのシート2のセルA3~D3まで、 上記のような形でコピーしたいのですがマクロがわかりません。 データ.xlsにボタンを作成し、そのボタンを押すとこの処理が実行されるようにしたいです。 どなかた方法を教えていただけますでしょうか。ご回答お待ちしております。 ※ファイルの名前は今回はサンプル1などとしましたが実際は違う名前も使用します。 また、ファイルの数も今回は3つにしましたが増減します。

  • EXCELを立ち上げると「Mocrosoft Visual Basic」ボックスが表示され

    Excel2003を使っています。 立ち上げると、「Mocrosoft Visual Basic」ボックスが表示され 注意マーク、コンパイルエラー修正候補:識別子「OK」「ヘルプ」が 表示されます。 「×」で閉じると、「PERSONAL.XLS-Module1(コード)」ボックス が出て、「×」で閉じると、「Microsofte Visual Basic-PERSONALXLS」ボックスがでるので「×」で閉じて、やっと Excelを使うことが出来ます。 Excel初心者なので、全くどうしたら良いのか分かりません。 立ち上げてすぐにExcelを使いたいのですが、どうすれば良いのでしょうか?それから、どうしてこのような事になったのでしょう?

  • excel2007の図形の貼りつけ

    お世話になっております。 excel2007を使っております。 外部で作成した図形や、テキストボックスを 一つのブックないのほかのシートに コピー&ペーストすると、大きさが違うようにみえます。 ズームは両シートとも、85% プロパティで、大きさの指定を両方同じ値にしても、 明らかに違って見えます。 どんな原因が考えられますか?

  • EXCEL2003で別ブックのシートの名前の定義を使いたいのですが

    EXCEL2003を使っています。 A.xlsというブックのAAAというシートに「商品」という名前の定義をしたテーブルがあります。このシートAAAをB.xlsというブックにコピーし、B.xlsのシートBBBの中で入力規則の元の値として、VLOOKUPの範囲名として使いたいのですが、入力規則の場合は、「元の値はエラーと判断されます。続けますか?」というメッセージが出て使用できません。 このとき、A.xlsは別場所なので存在しません。名前の定義のあるシートを他のブックにコピーして使用するのは無理でしょうか?

専門家に質問してみよう