エクセル雑感
素直なプログラミング

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2013-02-18

素直なプログラミング


プログラムを作る場合、「可読性」「保守性」等々に気を配る必要がありますが、


まずは、素直なコードを書くことでしょう。


テクニックに走ったりせず、頭に浮かんだ事をそのままコーディングしていく事も重要です。


頭に浮かんだ事が、今の自分のスキルレベルなのですが、


スキルが上がれば、頭に浮かぶ事も、少しずつ変化してきます。


素直なコードと書きましたが、ではどんなことでしょうか。


例として、


「変数Aが0で、変数Bも0の場合は何もしない、それ以外の場合は処理する。」


これをそのまま書けば、

If A = 0 And B = 0 Then
Else
  ・・・処理する
End If


となりますね。


しかしここで、Thenの時に何も記述がないのはおかしい、


ThenとElseを入れ替えた方が良いのでは考える人が多くいます。


その場合は、

If A <>0 Or B <> 0 Then
  ・・・処理する
End If


一見スマートに見えるのですが、頭の思考とは違ったコードになっています。


人間の思考は、否定形になじみません。


「変数Aが0で、変数Bも0の場合は何もしない、それ以外の場合は処理する。」


と考えた頭で、後のプログラムを見ると、一瞬、思考が停止してしまいます。


コードは、短ければ良いというわけではありません。


素直に、考えた事をそのままコードにすることも重要なのです。


さらに、可読性を考慮して、コメントをいれておくのです。


つまり、

If A = 0 And B = 0 Then
  '何もしない

Else
  ・・・処理する
End If


このように記述しておけば、だれが見ても解り易いコードとなるのです。



以上は、あくまで、簡単な例としての話ではありますが、


無理な考えをしない、素直に書いていくということです。


また、たまに玉石混交のコードを見かけます。


素晴らしいコードが書いてあるかと思えば、何だこれはというようなコードがあったり。


おそらく、自身のスキルに見合わないコードを、ネットからコピペして使っているのでしょう。


こういう統一感のないコード程、見づらいものはありません。


自身のスキルで書けるコードを、素直に書いていく、まずはそこからです。





同じテーマ「エクセル雑感」の記事

エクセルのマクロで何ができるか?

エクセルでは、マクロを使えば、色々な事ができます。自動転記、自動集計… 大量データの処理、手作業なら数時間かかる処理も、数秒で処理できてしまいます。もちろん、単なる事務の合理化だけでなく、本格的な、業務システムも作成可能です。
プログラミングについて
プログラミングをしていると、時に「開けゴマ」みたいなのにぶつかる。確かに扉はひらくのだが、「いったいこれは何だ、特にゴマって何だ」となる。危険のない命令なら別に知らなくても良いだろうが、多少でも危険性のある場合はそんな訳にはいかない。
エクセルの日付のお話
エクセルでの日付の扱いは特別です。では、エクセルでの日付についてのお話です。エクセルでの日付は1900/1/1を1として、そこからの日数になっています。通常、私もこのように説明するのですが、実は、ちょっとからくりがあります。
素直なプログラミング
IF文の整理と論理的思考
論理的思考でIf文を整理することについて、簡単な例で解説していきます。無駄な条件が入っていたり、条件が重複しているプログラム程理解しずらい物はありません。問題です。以下のマクロについて、気が付いたことを指摘して下さい。
エクセルVBAを覚えるには
エクセルのマクロ(VBA)を覚えるには、何が必要か… マクロで何ができるのか、そして、マクロで何を自動化したいのか、そのイメージをしっかりと持つことです。VBAの本を買ってきて、1ページ目から読み始めたとしたら… ほぼ確実に、途中で挫折すると思います。
EXCELマクロを始める時、まず最初にやるべきことは
EXCELマクロを始める時、まず最初にやるべきことは何か 入門書により、いろいろな事がかいてあるかもしれませんが、まず最初にやるべき事は、2007以降なら、「開発」タブを表示する事。そして、VBE(VisualBasicEditor)のオプション変更です。
Excelマクロを書くと言う事は
マクロを書くという事だけを考えれば、英作文に似ています。日本語を英語にする、マクロの場合はVBAコードにすると言う事です。英語もそうですが、マクロでも、この作業を覚えるには、それなりの勉強が必要です。
もしエクセルにマクロ機能がなかったら
私は、Excel4のころからエクセルを使っていますが、もし、エクセルにマクロ機能がなかったら… もし、マクロがVB言語でなかったら… 恐らく、エクセルはここまでは普及しなかったでしょう。VBAあってのエクセルだと思っています。そのマクロ機能を使わないと言う事は、エクセルの機能の半分を使っていない事と同じです。
物事には守るべき順序があります。エクセルにも順序があります。
何をやるにも守るべき事と順序というものがあります。例えば、PCにソフトをインストールする場合は、他のソフトは全て止める。そして、インストール後は、PCを再起動する。ごく小さいソフトで、OSに対して影響のないソフトの場合は、再起動しなくても良いですが。
Excelマクロ実行時のトラブル対処方法
マクロ実行時には、いろいろなトラブルが起こります。マクロを実行後に、あっ、しまった… と思ったら、まずはEscキーを押して、マクロを止めましょう。Ctrl+Pause(Break)でもよいです。被害は最小限に食い止めましょう。


新着記事NEW ・・・新着記事一覧を見る

import文(パッケージ・モジュールのインポート)|Python入門(9月24日)
例外処理(try文)とexception一覧|Python入門(9月23日)
リスト内包表記|Python入門(9月22日)
Pythonの引数は参照渡しだが・・・|Python入門(9月21日)
lambda(ラムダ式、無名関数)と三項演算子|Python入門(9月20日)
関数内関数(関数のネスト)とスコープ|Python入門(9月18日)
関数の定義(def文)と引数|Python入門(9月18日)
組み込み関数一覧|Python入門(9月17日)
辞書(dict型)|Python入門(9月16日)
入力規則への貼り付けを禁止する|VBA技術解説(9月16日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ