Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : その他)
スプレッドシートの一部だけ使いたい
投稿日時: 19/04/14 16:56:36
投稿者: 夜の缶詰

バージョン:Excel365
 
VBA初学者です。
googleのスプレッドシートからxlsx形式でダウンロードしてきて、ローカルでそのデータを抽出したりなんやかんや勉強のためにVBAで色々いじってみたいと思ってます。
ただそのgoogleシートには複数シートがあるのですが使いたいのはごく一部で、できればいちいち全部ダウンロードしたり、ローカル環境でいらないシートを出したくないんです。
ダウンロードしたxlsxファイル開いてからいらないシートの名前を指定して消すよりいい方法ってありますか?

回答
投稿日時: 19/04/15 07:18:03
投稿者: simple

Googleスプレッドシートは使用していないので検証できませんが、
スプレッドシート側で、その箇所をCtrl+C でコピーして、
ExcelシートでCtrl+Vで貼り付けるとどうなりますか?
少なくとも値(数値、文字列)はコピーペイストできませんか?
 
これでは(数式が移らないなら)使い物にならない、ということなら、
普通にXLSXで保存してExcel側で読み込み、不要箇所を消すしかないのでは?
 
これ以外にと、マクロに期待しているようですが、
手作業でできることであれば、VBAで自動化できるかもしれません。
そうでなければマクロだからといって特別なことは無いんじゃないかとも思います。
 
他の回答者の回答をお待ち下さい。

回答
投稿日時: 19/04/15 17:13:49
投稿者: ライスマン

simpleさんと同じようなことですが
必要なスプレッドシートをコピーし
空白なスプレッドシートに貼り付けて
それをダウンロードすれば良いんじゃないですか?
 
そんな単純なことじゃないですよね
失礼しました

投稿日時: 19/04/15 21:21:32
投稿者: 夜の缶詰

お答えありがとうございます。
全体コピーはデータ量が多すぎるんですよね。
1万行以上あるファイルを扱いたいので極力軽い方法で、想定してるのは更新ボタンつくってワンタッチで終わらせるというかんじです。(xlsx指定保存は手動でやるとして)
 
今はexcelのファイルから普通に開くで読み込んでその後消してます。
 
自分なりに調べた結果Workbooks.openfileとGetopenfileメソッドというものを見つけたのでとりあえずそれを使ってみるつもりです。また詰まったら投稿します。

回答
投稿日時: 19/04/15 21:22:22
投稿者: simple

ライスマンさんの案に賛成です。
 

引用:
ただそのgoogleシートには複数シートがあるのですが使いたいのはごく一部で、できればいちいち全部ダウンロードしたり、ローカル環境でいらないシートを出したくないんです。
ダウンロードしたxlsxファイル開いてからいらないシートの名前を指定して消すよりいい方法ってありますか?

>いちいち全部ダウンロードしたり、ローカル環境でいらないシートを出したくない
・VBAでGoogleスプレッドシートを操作することはできない。
・Googleスプレッドシートを操作するGAS(Google Apps Script)というものがあるらしいので、
 それを使って必要な箇所を切り取って、それをダウンロードする手があるかもしれない。
 
しかし、個人的な感想を述べると、
1.簡単そうにみえるけれど、両方のマクロ(スクリプト)をマスターする必要がある。
   それはそれで負荷があると思う。
2. その割に、苦労して実現できたことは、さほど嬉しいものでもない。
   簡単な手作業でできることだ。頻度もさほどないだろう。
3. そうした周縁的な仕事よりも、ExcelVBAをもっと効果的に活かすことが可能な領域に
   力を入れたほうがよいのではないか。
という気がします。(余計なお世話かもしれないが)

トピックに返信