Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12770 / 13646 ツリー ←次へ | 前へ→

【8683】各シートでいろいろやりたい。 ひとみ 03/10/29(水) 11:33 質問
【8686】Re:各シートでいろいろやりたい。 よろずや 03/10/29(水) 12:34 回答
【8695】Re:各シートでいろいろやりたい。 ひとみ 03/10/29(水) 14:33 質問
【8712】Re:各シートでいろいろやりたい。 りん 03/10/29(水) 18:35 発言
【8720】Re:各シートでいろいろやりたい。 INA 03/10/30(木) 10:54 回答
【8723】Re:各シートでいろいろやりたい。 ひとみ 03/10/30(木) 10:58 質問
【8725】Re:各シートでいろいろやりたい。 INA 03/10/30(木) 11:16 回答
【8727】Re:各シートでいろいろやりたい。 ひとみ 03/10/30(木) 11:21 お礼
【8761】Re:各シートでいろいろやりたい。 ひとみ 03/10/31(金) 11:22 質問
【8764】Re:各シートでいろいろやりたい。 INA 03/10/31(金) 13:41 回答
【8767】Re:各シートでいろいろやりたい。 ひとみ 03/10/31(金) 14:25 質問
【8778】Re:各シートでいろいろやりたい。 りん 03/11/1(土) 17:35 発言

【8683】各シートでいろいろやりたい。
質問  ひとみ  - 03/10/29(水) 11:33 -

引用なし
パスワード
   すいません・・・超超初心者です。
わけわかんなかったらすいません。
質問ですが、

まず、シートが複数あります。
毎回名前も枚数も微妙に違います。
だいたい5〜10シートです。

これらすべてのシートで、
オートシェイプの削除やソートを
かけたいのですが、うまくいきません。
どなたか教えていただけませんか?

【8686】Re:各シートでいろいろやりたい。
回答  よろずや  - 03/10/29(水) 12:34 -

引用なし
パスワード
   >これらすべてのシートで、
>オートシェイプの削除やソートを
>かけたいのですが、うまくいきません。

見せてもらわなくては間違い探しはできません。

【8695】Re:各シートでいろいろやりたい。
質問  ひとみ  - 03/10/29(水) 14:33 -

引用なし
パスワード
   超超初心者なので、記録マクロを修正するくらいしか
わからないのですが・・・。

【8712】Re:各シートでいろいろやりたい。
発言  りん E-MAIL  - 03/10/29(水) 18:35 -

引用なし
パスワード
   ひとみ さん、こんばんわ。

>超超初心者なので、記録マクロを修正するくらいしか
>わからないのですが・・・。
↓つい最近話題になってましたが、ここ見ましたか?
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=8662;id=excel

図形を全部消去するならば、ループするよりもSelectAllで全選択して消去が楽です
Selectは対象シートがアクティブでないと失敗します
ActiveSheet.Shapes.SelectAll
Selection.Delete

↓ソート
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=2082;id=excel

【8720】Re:各シートでいろいろやりたい。
回答  INA  - 03/10/30(木) 10:54 -

引用なし
パスワード
   >うまくいきません。
>どなたか教えていただけませんか?
何が上手く行かないの?
どんな点について、教えて欲しいのか書いてないよ?

【8723】Re:各シートでいろいろやりたい。
質問  ひとみ  - 03/10/30(木) 10:58 -

引用なし
パスワード
   ▼INA さん:
すいません。言葉が足りなくて、
シートを全部選択して、
オートシェイプを削除したり、ソートをかけたりしてみても
最初の1枚目しかできてないので、
順番にやらないとダメなのかな?
とおもいまして。

【8725】Re:各シートでいろいろやりたい。
回答  INA  - 03/10/30(木) 11:16 -

引用なし
パスワード
   であれば、ひとまず皆さんの回答で、どうにかなりそうですね?

【8727】Re:各シートでいろいろやりたい。
お礼  ひとみ  - 03/10/30(木) 11:21 -

引用なし
パスワード
   ▼INA さん:

はい、がんばってみます。
ダメだったらまたHELPお願いします。
ありがとうございました。

【8761】Re:各シートでいろいろやりたい。
質問  ひとみ  - 03/10/31(金) 11:22 -

引用なし
パスワード
   皆様のアドバイスや書き込みを参考にして、
下記のような感じに作ってみたのですが、
各シートでの作業時間がものすごく長いのですが、
何が原因があるのでしょうか?
よろしくお願いいたします。


-------------------------------------------------------------------
Dim i As Long
  For i = 1 To Worksheets.Count
    Sheets(i).Select
'ボタン削除
  ActiveSheet.Shapes.Range(Array("その1", "その2")).Select
  Selection.Delete
' 列幅調整
  Columns("S:S").ColumnWidth = 31
  Columns("R:R").EntireColumn.AutoFit
  Columns("B:E").EntireColumn.AutoFit
  Columns("A:A").ColumnWidth = 9.38
  Columns("M:M").ColumnWidth = 6
  Columns("G:G").ColumnWidth = 34
End With
-------------------------------------------------------------------

【8764】Re:各シートでいろいろやりたい。
回答  INA  - 03/10/31(金) 13:41 -

引用なし
パスワード
   VBAにおいて、たいていの場合selectは不要です。
ActiveSheetにしなくても、直接シートを指定すればよいのです。

Dim i As Long
  For i = 1 To Worksheets.Count
with workSheets(i)
  .Shapes.Range(Array("その1", "その2")).Delete

  .Columns("S:S").ColumnWidth = 31
  .Columns("R:R").EntireColumn.AutoFit
  .Columns("B:E").EntireColumn.AutoFit
  .Columns("A:A").ColumnWidth = 9.38
  .Columns("M:M").ColumnWidth = 6
  .Columns("G:G").ColumnWidth = 34
End With

これで動くかな・・?

【8767】Re:各シートでいろいろやりたい。
質問  ひとみ  - 03/10/31(金) 14:25 -

引用なし
パスワード
   ▼INA さん:

オートシェイプをデリートするところで、
ダメです。どうしてでしょうか??
すいません、ホント何もわかってないのでごめんなさい。

Dim i As Long
  For i = 1 To Worksheets.Count
with workSheets(i)
  .Shapes.Range(Array("その1", "その2")).Delete '(←ここです。)

  .Columns("S:S").ColumnWidth = 31
  .Columns("R:R").EntireColumn.AutoFit
  .Columns("B:E").EntireColumn.AutoFit
  .Columns("A:A").ColumnWidth = 9.38
  .Columns("M:M").ColumnWidth = 6
  .Columns("G:G").ColumnWidth = 34
End With

【8778】Re:各シートでいろいろやりたい。
発言  りん E-MAIL  - 03/11/1(土) 17:35 -

引用なし
パスワード
   ひとみ さん、こんばんわ。

>オートシェイプをデリートするところで、
>ダメです。どうしてでしょうか??

その名前のAutoShapeがシート上に必ずありますか?
>  .Shapes.Range(Array("その1", "その2")).Delete '(←ここです。)
もしも無いならば、

For each sh in .Shapes
 sh.delete
Next

で全部のオートシェイプをデリートできます。

あと、
 .Columns("R:R").EntireColumn.AutoFit
 .Columns("B:E").EntireColumn.AutoFit

すでに列を指定しているので.EntireColumn(列全体)はいらないです。

 .Columns("R:R").AutoFit
 .Columns("B:E").AutoFit

12770 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free