- ベストアンサー
エクセル2003でマクロを使って複数の作業を簡単に終わらせたい
昨晩こちらで別件で質問させてもらって、okweb内を調べていたところ エクセルにはマクロという機能がある事がわかりました。 当方エクセル2003を使っています。 表示させているシート上で、毎回手作業で下記のことをやっているのですが この作業をマクロ?というのを使って簡単に済ませる事はできないでしょうか? 1.画像一括削除 2.ハイパーリンク一括削除 3.セルの結合解除(結合されているセルを全て解除したい) 4.空白行削除 5.E列(縦)の削除(削除後は隣のD列以降が1列左にシフトされる状態) マクロのサンプルを置いてあるサイトを調べてみましたが 画像を一括削除するマクロだったり、空欄行削除のマクロは見つけたのですが そのマクロを連続で動かす方法がわかりませんでした。 マクロというものをほとんど理解していないのですが そもそも、マクロというのは連続した作業が無理なのでしょうか。 そうだとしたら、変な質問をしてしまい申し訳ないです。
- みんなの回答 (7)
- 専門家の回答
お礼
何度も丁寧にアドバイスしていただけて、とても嬉しかったです。 どうもありがとうございました! 調べてみた結果、下記のように書き直したところ とりあえず今まで手動でやっていたことは自動でできるようになりました。 慣れた方が見ればとても幼稚なマクロかと思いますが、 他の方の参考になる事もあるかもしれませんので 張っておきます。 Sub Macro2() '画像一括削除 ActiveSheet.DrawingObjects.Select Selection.Delete 'ハイパーリンク一括削除 Cells.Select Selection.Hyperlinks.Delete 'E列の削除(削除後は左にシフト) Columns("E:E").Select Selection.Delete Shift:=xlToLeft '空欄行の削除 Dim UsedCell As Range Dim Max_Row, RowCount As Integer '使用しているセルの範囲を取得します Set UsedCell = ActiveSheet.UsedRange '最大の行番号を取得します Max_Row = UsedCell.Cells(UsedCell.Count).Row For RowCount = Max_Row To 1 Step -1 'Worksheet関数のCountAを使ってデータの個数をカウント If Application.WorksheetFunction.CountA(Rows(RowCount)) = 0 Then '行の削除 Rows(RowCount).Delete End If Next End Sub
補足
再度ご回答ありがとうございます。 この方法を自分でも見つけて試してみたのですが 今度は空欄のセルに0が入力されてしまい そうなると空欄行削除が不可になってしまいました。 0を一括で削除すればいいのかもしれないのですが 最初から0が入っているセルもあるので、一括削除は避けたいと思っています。 この他に、データの入っているA:E列をコピー F:Jに 形式を選択して貼り付け→値 として貼り付け A:E削除 この方法を試したのですが、文字の色が消えてしまって… 同じような方法で、文字の色が残ってくれればいいのですが。 手作業でやっていたときは、ハイパーリンクのあるセルに マウスカーソルを移動させ、右クリックからハイパーリンク削除を選んでいました。 ハイパーリンクのセルが色んな列に大量にあるためこの作業に何十分もかかっている状況です。 別の方法がないか、もう少し調べてみようと思います。