• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数131
  • ありがとう数1

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

  • ベストアンサー
  • 回答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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • Microsoft Visual Basic エラー

    Excel2003でファイルを開くと、Microsoft Visual Basicのウィンドが開き、sheet1 の読み込み中にエラーが発生しました。プロジェクトの読み込みを続行しますか?と、毎回出ます。はい(Y)でシートは開けますが、エラー回避の方法は有るのでしょうか。どのシートを開いても同じです。

  • 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との違いが聞きたいのです。教えてください。宜しくお願いします。

  • Visual Basic2005でExcelに罫線を描く

    Visual Basic 2005 でデーターをエクセルに書き込んだが、各セルに罫線枠を書けません。エクセルのマクロをコピーして使用しても認識できません。 何か基本的設定ミスがありそうです。 どなたか、アドヴァイスをお願いします。    ※ Visual Basic = 2005, Excel = 2003 使用

その他の回答 (1)

  • 回答No.1

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

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 別excelのデータを引き出す時に、そのexcel名称を可変にしたいと思っています。

    別excelのデータを引き出す時に、そのexcel名称を可変にしたいと思っています。 なるべくマクロを使わないで出来るでしょうか? 例: =VLOOKUP(A1,[B.xls]Sheet1!$A$1:$E$10,4,FALSE) という関数を指定したとします。 [B.xls]Sheet1 この部分をセルA1に入れて、内容を変更することで 引き出し元のファイル&シートを変えたいと思っています。 つまりA1のセルの値を[C.xls]Sheet2にすることで、C.xlsファイルのSheet2からデータを引っ張って来たいのです。 出来るでしょうか? ご存知の方いらっしゃいましたら、宜しくお願い致します。 環境は OS:WINDOWS98 EXCEL2000 です。

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

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

  • MicrosoftExcelについての質問

    MicrosoftExcelについての質問 (関数) excelについての質問です。 あるブックの「sheet1」では、「sheet2」の セルの値を=(イコール)を使って取得しています。 「sheet2」のA1~A100に実際の数値データが入っており、 「sheet1」のA1~A100では、 =Sheet2!A1 =Sheet2!A2 =Sheet2!A3 =Sheet2!A4 =Sheet2!A5 ・ ・ ・ =Sheet2!A100 という数式で、「sheet2」のA1~A100の値を 取得しています。 「sheet1」は「sheet2」を参照しているという ことなのですが、参照する対象シートが、毎月変わります。 今月は「sheet2」を参照しているが、来月は「sheet3」を、 さ来月は「sheet4」を参照するという具合です。 月が変わるごとに「sheet1」の数式を1つずつ手で、 修正していかないといけませんが・・・ =Sheet2!A1→=Sheet3!A1 (こんな具合に)  これが結構大変でして、これを一気に変更する手はないでしょうか。  なお、実際のシートでは、連続したセルではなく、列も行もとびとびなので  フィルタ等一気に変更はできません。  また参照先のシートを、その都度「sheet2」に名前を変える、というのも  事情によりできません。 知りたいことは、 あるシートに書かれた、セルの数式の中の一部分だけを 一気に変換する方法ということになります。 もし簡単にできる方法があるのでしたら、どうかご教授ください。 よろしくお願いします。

  • Word起動時に 「Microsoft Visual Basic」のエラーメッセージ

    特に何をしたわけでもないのですが、パソコンを立ち上げWordを起動したら 「Microsoft Visual Basic」のタイトルで ボックス内に 「非表示モジュール Main内でコンパイルエラーが発生しました」とメッセージが出るようになってしまいました。 OKにすれば、そのまま使用する事ができますので、 なんとかよいのですが、 以前にもあり、CDを入れて修復すればなんとかなおったのですが、引越しをした際に、CDが行方知れずになってしまいました。 なにか良い手はないでしょうか? また、なぜこの様なことが起こるのかわかりましたら教えて下さい。 お願いいたします。

  • Visual Basic 2005 をインストールしましたが言語などが分からない

    Microsoft Visual Basic 2005 Express Editionをインストールしました。低速回線なので困難でした。 このソフトでプログラミングをやろうと思っても使い方とか、言語とかがまるっきりわかりません。 今のところボタンの配置などだけです。メッセージボックスさえ出すことができません。 そこで、Microsoft Visual Basic 2005 Express Editionの使い方やVisual Basicの言語を初心者向けに紹介しているサイトがありましたら教えてください。 書籍をお勧めいただいたこともあるのですが、予算がないので、その辺をなんとかよろしくお願いします。

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

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

  • Visual Basic 2005 Textboxにセルの値

    Visual Basic 2005 超初心者です。 Visual Basic 2005のTextboxにエクセルのセルに対応させるには どうすれば良いでしょうか? 例:エクセルSheet1のG3にある値をVisual Basic 2005のForm1のTextBox1に入れたいのです。 超初心者ですの分かり易くお願いします。(小学生に教える感じで)

  • この仕組み作りはエクセルの何を使えばできますか?

    エクセルを使って、sheet1の全ての内容をそっくりそのままsheet3に自動コピーし、 sheet1と同様にsheet2もsheet2の全ての内容をそっくりそのままsheet3のsheet1の下側に自動コピーして、 sheet1やsheet2に新たなデータが加わった時、 自動コピーしたsheet3もそれに合わせて自動で更新される・・・ このような仕組みをエクセルで作りたいです。 具体的な質問の内容は、↓こちらの参考ページを見て頂きたいです http://blog-imgs-50.fc2.com/s/k/s/sksfiosjdijf34/siritai.html 添付しました画像で、データしかコピーされないような状態にはしたくないです。 エクセルにはマクロや関数やVBAなどがありますが、 このような使い方はエクセルの何を勉強すればよいのでしょうか? ヒントだけでも下さい。よろしくお願いします。

  • エクセル2003での質問です。

    エクセル2003での質問です。 Aのフォルダ内にa.xlsファイルがあるとします Bのフォルダ内にb.xlsファイルがあるとします a.xlsの中のデータはA1に1という数字のデータがあるとします ここで質問です。 b.xlsのファイルを開きA1にa.xlsの中のデータのA1の値を リンクさせたい場合はどのように処理するのでしょうか? (a.xlsのA1が3になればb.xlsのA1も3になるようにしたいのです) マクロを使わずにお願いします。

  • 【Excel】2つのBook間のマクロ

    Excel2003を使用しています。 BookAのSheet1とSheet2のある範囲をそれぞれBookBのSheet1とSheet2に値のみコピーするというマクロを作成しようとしています。 (1)Sheet1を値のみコピーするコード   を書いて (2)Sheet2を値のみコピーするコード   を書こうと思っていたのですが、(1)から(2)へどのように続けて書いたらいいでしょうか? (1)のコードは  Sheets("Sheet1").Range("A1:G30").Select  Selection.Copy  Workbooks.Open Filename:="A:\B.xls"  Sheets("Sheet1").Range("A1").Select   Selection.PasteSpecial Paste:=xlPasteValues   Application.CutCopyMode = False と書いています。 また、こういう場合は、BookAとBookBのどちら側にコードを書いた方がいいのでしょうか?