3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

3時間かかっていた作業が3秒で終わるようになりました-Excelマクロ・VBA

2012年8月15日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

Excelマクロ・VBA達人養成塾 小川です。

エクセルマクロ達人養成塾塾長ブログ-先日実施した上級セミナーでのヒトコマ。
先日実施した上級セミナーでのヒトコマ。

達人養成塾修了生の吉国宏之さんが、Facebookでこんな近況を報告くださいました。

3時間かかった作業が3秒で終わるようになりました

今の職場を離れることになったので、業務の空き時間に餞別のマクロを作成していました。
同僚からは、
○○○(社内開発のソフト)よりも使い勝手が良い
3時間かかった作業が3秒で終わるようになった」(本当は15秒ほどかかるのだが・・)
などうれしい意見を頂戴しました。

マクロや手順書は、あなたがその職場を去ったあとにも、あなたをその職場で口コミしつづけてくれる貴重なツールです。
異動にしろ昇進にしろ退職にしろ、人はいつかその職場を去ります。そのとき、その職場に対して何ができるか。

できることなら、「正の遺産」とでも言えるものを残したいものです。

ところで、ひきつづき、こんなことをおっしゃっていました。

プログラム中にちょっとはまったのはCase文って、IF文と違ってCase is <>という書き方ができないみたいですね。そこだけちょっとはまりました。

あなたなら、どのようにしてこの課題を解決しますか?

受講生フォローのために作ったFacebookグループでも書きしましたが、第一感、僕が書いてみたくなるのは、以下のプログラム。

Sub hoge()
  Dim condition1 As Boolean
   Dim condition2 As Boolean
   Dim v1 As Variant, v2 As Variant
    Select Case v1
      Case condition1 '[1]
        Case Else
           Select Case v2
              Case codition2
              procedure
           End Select
  End Select
End Sub

[1]のところで、除外する条件を書いておきます。

もうちょい具体的に書くなら。

例えば、セルA1の値が「男性」のときは作業しないということなら、こんな感じ↓。

Sub fuga()
    Select Case Range("A1").Value
        Case "男性"
        Case Else
            Select Case Range("A2").Value
                Case Is > 70
                    Range("B2").Value = "極めて身体能力が高い"
                Case Is > 50
                    Range("B2").Value = "身体能力が高い"
                Case Else
                    Range("B2").Value = "標準か、それ以下。"
            End Select
    End Select
End Sub

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド