プログラミング教育で賢い子を育てるサイト

ExcelのVBAプログラミングでは、入力シートと結果シートは分けよう!

abekkan_LL.jpg

ようこそ!
「四児の父・あべっかん」のブログです。
子どもの家庭教育を中心に役立つネタを書いています。

ExcelVBAで表のデータを使う処理を作るときには、入力用、出力用のシートを分けた方が便利です。さらにはVBAの処理を行うファイルをデータファイルから独立させておくと便利です。

IPOってなに?

Excel VBAの設計は事前準備から 大規模システムでも使える「IPO」とは
 

という記事がありました。IPO とはInput Process Output のことだそうです。Excel VBA でシステムを設計するということは、インプットとアウトプット、そしてその途中のプロセスを決める作業だということです。

これについて少し説明してみましょう。

 

インプットのシートとアウトプットのシートは分けよう

エクセルの表を加工したいとき、このセルに結果を入れたいからと、計算した値をもとの表に直接書き込んでしまう人がいます。けれどもこれはあまり良い方法ではありません。

まちがえた、なおさなきゃ、ってときに元の表がそのまま残っていないと困る場合があります。元の表はそのまま残し、そのシートをコピーしたものに計算した値などを書き込む処理にしたほうがいいですね。つまりインプット用のシートとアウトプット用のシートを分けておきましょう。

  • ×:もとの表を直接加工してしまう
  • 〇:もとの表は変更せず、もとの表をコピーした表を加工する
 

VBAのプログラムが入ったファイルとデータのファイルを分けよう

同じように、VBAのプログラムが入ったファイルと、インプット用、アウトプット用のファイルを分けておくと便利になります。

どういうことかと言うと、下記の例で説明します。

私はよく、上の図のようなシートを作ります。このシートは処理のインプット用のデータ結果ファイルやアウトプット用のファイルと独立した別のファイルにします。

そして、どのファイルのどのシートを処理対象のインプットやアウトプットにするのかを黄色いセルに書き込みます。

「処理開始」ボタンを押すと、「売り上げ表.xls」ファイルの「東京本店」シートと、「売り上げ表.xls」ファイルの「大阪支店」シートから必要なデータを読み込みます。

処理を行うファイルが、インプットやアウトプットのファイルと独立しているため、後に別のインプットファイルに対して似たような処理を行いたいという場合に、この処理のファイルを流用して新しい処理を作ることができます。

読み込んだデータを計算するなりして、その結果を「集計結果.xls」ファイルの「結果一覧」シートに書き込みます。

  • ×:データがあるァイル内にVBAのプログラムの処理を埋め込む
  • 〇:VBAの処理を埋め込んだファイルをデータの書かれたファイルと独立させる

ちょっと説明が難しかったかもしれませんね。

言いたかったことは、Excelのプログラミングで表を編集するときは、もとの表を直接更新せずに新しい表を作って書き込みましょう、ってことです!

 


「週末パパ講座で子どもに自分で考える力を着けさせる3つの方法」
紙の本電子書籍
電子書籍は、KindleUnlimitedの読み放題の対象です。


「イクメンから教育パパにキャリアアップする方法」小学生のパパ編/中学生のパパ編
KindleUnlimited対象の電子書籍です。


忙しいSEも『育児ナシ』を卒業

KindleUnlimited対象の電子書籍です。


電子書籍とPODの出版をサポートします


ブログのスキマ、お埋めします!

Follow me!

About あべっかん

私には4人の子どもがいます。子どもの教育について体験したこと、考えたことをこのサイトで伝えます。 また、私はITエンジニアで、@ITというサイトにコラムを書いています。このサイトでは特にプログラミング教育についても伝えていきます。 学校でプログラミング教育が導入されることになりました。 子どもにプログラミングを教えることは何のためになるのか? をこのサイトで伝えます。 そもそも親世代は、プログラマーを目指した人以外はプログラミングのことを知らないと思います。そんなかたに、プログラミングってこういうものなんだよ、やってみると面白いんだよ、というのを体験して知ってもらいたい、と私は考えています。 リンクやシェアは大歓迎です。いいネと思った記事がありましたらどんどんシェアしてください!
URL :
TRACKBACK URL :

Comment

*
DigiPress

13 + 20 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Comment on Facebook

Return Top