- ベストアンサー
VBAでドライブデータ一括コピー
エクセルのマクロで次のようなことは可能でしょうか? 1 CD-Rが入っているドライブ(私の場合はDドライブ)のデータを、 デスクトップ上に新たにフォルダを作成してそこに全てコピーする。 (CD-Rにじかにデータが入っていて、フォルダがないので foldercopyが使えないみたいなんです。データは全てjpeg画像です。) 2 列に数字を入力していき、列合計がある値(例えば500)になったら 画面上にメッセージを出す。 ネットで検索しまくっても、ドライブ:\フォルダ\データなどの記述 のものしかなくて・・ヘルプも参照してみたのですが見つかりませんでした。 どうかお力をお貸しください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>デスクトップ上のエクセルアイコンをダブルクリック(これくらいならわかるので)、 であるならば、エクセル起動して、ボタン押してもらうより 仮に、C:\ 父のフォルダ とかの名前でフォルダ作成しておいて メモ帳で copy d:\*.jpg C:\父のフォルダ pause (うまく貼り付けできませんでした、copy ドライブ:\パス\ファイル名 半角スペース ドライブ:\パス です) フォルダー名にスペースを含む場合には" "でくくり指定してもかまいません。 ファイル名に、CDの写真保存.bat とか名前付けてデスクトップに保存しておいて そののファイルをクリックしてもらう方が良いのでは。 2の質問もVBAではなくて、入力規則で処理できると思います。 入力する範囲が、A1~A10の場合、範囲を指定して、データ、入力規則 =SUM(A1:A10)<500 としておけば、その範囲の合計が500超える数値が入れば、メッセージが出るはずです。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17070)
1はVBAに関連付けた質問にしているのは、的外れの質問と思う。 確かに、記録媒体(ハードディスクやCDR,FDなど)によって原始レベルの読み方書き方は、随分違います(入出力装置のドライバーが扱うレベル)。 しかしユーザーがそのレベルで機器をを扱うとなると、大変な作業になるので、媒体や、ファイル形式が違っても、(言語で言えば)GETやREADやPUTといったスクリプト・指令などで、読み書きできるように、関係者は鋭意努力してきました。質問者はそういう場面・時代に居合わせず、勉強していないため、CDRが通常の言語レベルで、取り扱いに差があると思っているらしい。差はウラで吸収して、利用者には差を意識させないようにコンピュターソフトは進んできた。 ファイル全体を(中身は考慮しないで)コピーするなどというのは、言語の領域でなく、OSのコマンドやユティティのレベルで行います。 もっと進歩してドラッグアンドドロップなど操作的な行為に仮託されるもので行う時代です。 1はVBAというよりも、上記(コマンドなど)かまたはVBの系統のVBSCRIPTで扱ったほうが良いと思われる。 2 VBAである程度やれば、「がある値になったら」何々する (イベントプロ)」の仕組みを使えばできることがわかる。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 話は分かるし、VBAでは作れるとは思うのですが、ちょっと、そういう必要性がないような気がしているのですが。それを、私の感覚では、エクスプローラでできない人のためのプログラムという想定になってしまいまし、対話型マクロですから、マクロで作るには、あまりにも面倒すぎます。 そういうのは、ファイラーをお使いになればよい思います。 http://www.vector.co.jp/vpack/filearea/win/util/file/filer/ もちろん、マクロの勉強というなら、 最初に、ドライブチェックをして、 新規フォルダを、InputBox で聞いて、 後は、送り先側をカレントドライブにしてから、 Shell から、 Copy *.jpg C:\Documents and Settings\[ユーザー名]\デスクトップ\新規フォルダ\ でよいはずです。
お礼
こんにちは、回答ありがとうございます。 なるほど、VBAで可能なのですね。 もう少しトライし直してみます。 おっしゃるとおりパソコン苦手な父のためのものです。
- hallo-2007
- ベストアンサー率41% (888/2115)
先ほど、回答した者です。 ひょっとして、 CD-Rを開く すべてを選択 デスクトップの新しいフォルダにドラック この作業のことですか。
お礼
すばやいご回答、大変ありがとうございます。 >CD-Rを開く >すべてを選択 >デスクトップの新しいフォルダにドラック まさにそれです。でもなぜそれをエクセルでやりたいかと申しますと、 パソコンをあまり使えない人(父です)のために、エクセルで、元データリンク→集計→結果データの出力。 というマクロを作ったのですが(作ったと言ってもネットでマクロサンプル探しまくって、 それをちょこっと修正しただけですが・・)、最初に元データをデスクトップの フォルダにセットしておく、という操作が必要でして。PCが操作がまだよくわからない人に 「スタート」から「マイコンピュータ」CDドライブをダブルクリックしてなんて教える ことは出来るのですが、おかしなところにコピーされたり、間違って 何か消されたりすると 困るので、デスクトップ上のエクセルアイコンをダブルクリック(これくらいならわかるので)、 で上記の一連の動きをマクロ実行で出来たら・・と思った次第です。
- marbin
- ベストアンサー率27% (636/2290)
1.に関しては、 FileCopy でいけると思います。
お礼
ご回答ありがとうございます。 filecopy・・ 私もそれだと思い、ヘルプやQ&Aサイトをみたりして、 何度か試したのですが、どうもうまくいかなくて・・。 お恥ずかしい話です。
- hallo-2007
- ベストアンサー率41% (888/2115)
一度に、2つの質問は、しないほうが良いと思います。 取り合えず、1の質問に対してですが、 別にフォルダでない場合は、 D:\ でダメですか、別にエクセルのVBAでなくても良いと思います。 例えば、 MS-DOSのコマンドでXCOPYで検索してみてください。 xcopy d:\ "コピィ先ドライブ\フォルダ名" で出来そうですが、コマンドが決定すれば、メモ帳に記入して 拡張子を.batで保存すれば、次からはそのファイルをクリックすることで、コピィされるでしょう。
お礼
たびたび親切な回答をしていただいて本当にありがとうございます。 なるほどなるほど、 >CDの写真保存.bat とか名前付けてデスクトップに保存しておいて >そののファイルをクリック この方法試してみます。 2の方も試行錯誤の結果、回答していただいた方法を見つけられました。 本を買って少し勉強してみたのですが、実際試すと「実行エラー」 出まくりで・・情けない話です。 本当にありがとうございました。