エラーについて
Posted on 5 月 27, 2009, under 実技.
プログラム実行時に何らかの原因があってエラーが発生してしまい、プログラムが途中で止まってしまうということは経験おありでしょうか?そのエラーの原因にはプログラムミスもあるのですが、
「Excelの表に想定していないデータが入っていたとか、ユーザーが予期しない操作をした」
などといった理由などで、エラーが発生してしまたという場合があるのです。完全にエラーを無くすのは正直難しいでしょう。
そこで、「プログラム実行中にエラーが発生してしまった!!」という場合には、どのような処理を実行すればいいのか、そしてあらかじめきちんとプログラミングしておくことで、エラーで止まってしまう事を回避できると思います。
そこでエラー処理のステートメントを自分なりにまとめてみました。
【ステートメント】 【内容】
On Error GoTo 0 上記のエラー処理を解除する
On Error Resume Next エラーを無視して実行
Resume エラーが発生した行へもどる
Resume Next エラーが発生した次の行へもどる
On Error GoTo ラベル(又は行番号) エラーが発生した場合 ラベル(又は行番号) 以下ステートメントを実行する
発生したエラーいろいろに、それぞれのエラーの内容とエラー番号が割り当てられていて、エラーの要因が分かるようになっています。エラー番号はErrオブジェクトのNumberプロパティのことで、エラー内容というのはDescription プロパティで知ることができるのです。
たとえばエラー番号が7だと「メモリー不足」、58だと「すでに同名のファイルが存在している」ということになります。
表にしておいたりするとエラーの際に役立つかも知れませんね!
おすすめサイト⇒アリコのがん保険を知りたい人へ
初心者のための用語解説(1)
随分と更新をさぼってしまいました~;;(^o^);;~ちょっと中級者レベルな感じですすめてしまって煮詰まってしまっていたのです。今回からは、超初心者向けに用語解説から始めて、パソコンを便利にしよう!てな感じで進めていきたいと思います。
これまでずっとVBA(Visual Basic for Applications)を使ったプログラミングを見てきましたが、そもそも「VBA」とはなんぞや!ということです。家のパソコンには確かにエクセルは入ってるけど、エクセルは表計算ソフトのはず・・・; (◎ 。◎) ; ていう方が大半だと思います。そんな一般の方向けに初歩の初歩から一緒に学んでいきましょう、ということです。
ではまず、「アプリケーション(Application)」という言葉から説明していきましょう。
アプリケーションとは、文書の作成、数値計算など、ある特定の目的のために設計されたソフトウェアのことです。つまり、ご自宅のパソコンに入っているエクセルやワード、はがき作成ソフトなんかも全部ひっくるめて「アプリケーション」ということです。
次に「ビジュアル・ベーシック(Visual Basic)」です。
「VB」とも呼ばれる、Microsoft社によって開発されたコンピューターのプログラミング言語のことです。
次に「マクロ(Macro)」ですが、マクロとはワープロソフトや表計算ソフトなどで、特定の操作手順をプログラムとして記述して自動化する機能のことです。このプログラムの記述に使う言語を「マクロ言語」といいます。
P.S.サイドビジネスを始めるサラリーマンが副業ブログから始めるケースが増えているそうです。ブログは手軽に始められる上に更新も簡単なので、自分のHP代わりに使えるので便利です。
初心者がプログラムの勉強をするために
初心者がプログラムを勉強するってことはかなり敷居を感じると思います。
でもやってみれば意外に簡単だったりして、楽しくなってくるもの。
この「楽しい」と感じる気持ちがプログラマーの第一歩と思います。
今まで何人かの素人にプログラムを教えてきました。
そこでわかったのはやっぱり実利があってこそ!
今やってる仕事が簡単に、ミスなくできるんだよ~って一度目の前でやってみせると自分でもやってみたくなるようです。
だけど初心者だからこそ、プログラムで何ができるのかわからないため結局手作業でやってしまう。
プログラムをやってみたいな~っと思ったら、まずプログラムで何ができるのかを知ってから。
それを実業務に少しづつ組み入れてみてください。
これまでのブログでなんとな~くVBAで何ができるのがわかると思います。
VBAではできないことはDOSやスクリプトなんかでできたりします。
そこはあきらめないで、実現したいことをどうやったら実現できるかネットで調べながら挑戦しましょう。
エクセルマクロの使用例3
図のコピーって知ってますか?
エクセルのセルを図として扱うことができます。
図としてあつかうとどうなるかというとオートシェイプのコネクタが図に張り付きます。
どうゆうことかというと・・

こ~んなことができたりしちゃいます。
これは図のコピーってのはエクセルの基本機能であるんですが、これをマクロで行ごとに図のコピーを行えるようにしました!
ソースアップしようかな?と思ったんですがちょっとソースに自信がないので・・また今度^^;
エクセルマクロの使用例2
エクセルのセルを結合するときに、列だけ結合して行は結合したくない!ってときないですか?
たとえばA1からE10のセルを選択したときに、横のセルならびだけ結合して、列は結合したくない!
そんな機能エクセルにはないんですよね。
普通にA1からE10を結合すると一個のセルになってしまいます。
エクセルでリストとか作ってるときどうしてやりたいですよね。
そこで作っちゃいました。選択したセル内で列だけ結合してくれるマクロ。
ソースはこんな感じです。
———————————————
Dim startCellC As Integer
Dim startCellR As Integer
Dim endCellR As Integer
Dim endCellC As Integer
Dim intCnt As Integer
startCellC = ActiveCell.Column
endCellC = Selection.Columns.Count + Selection.Column - 1
startCellR = ActiveCell.Row
endCellR = Selection.Rows.Count + Selection.Row - 1
For intCnt = startCellR To endCellR
Range(Cells(intCnt, startCellC), Cells(intCnt, endCellC)).Merge
With Range(Cells(intCnt, startCellC), Cells(intCnt, endCellC))
.HorizontalAlignment = xlLeft ‘左ぞろえ
.VerticalAlignment = xlTop ‘文字位置-中央
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = True
End With
Next
——————————————-
動作保障はできませんが、興味があればあなたのマクロに追加してやってください。
エクセルマクロの使用例1
客先に提出するドキュメント文書をエクセルで作ってるってとこありませんか?
私の会社はまさにこれでした。
レイアウトは会社さまざまだと思うのですが我が社では
ページのヘッダーに「プロジェクト名」「ドキュメント名」「ドキュメント管理NO」「備考」
フッターに「ドキュメント作成日」「社名」「作成者名」「プロジェクト管理者名」「ページ数」「総ページ数」
と必ずつけていました。
これを外注さんにエクセルレイアウトを渡して作成してもらうわけですが、
な・ぜ・か 勝手に変更してくるんですよね。
フォントサイズが違うとか、ページ数が間違ってるとか、1ページ内の行数が変わってるとか・・・
個人的にはこういうのは気に入りません。
かといって外注さんに修正させると修正になってなかったり細かいことにチクチク言ってる小さい人間と評価されます。
これにイラーーーーーっつときて作っちゃいました。
我が社のドキュメントレイアウト作成マクロ。
これで外注さんが作ってきたドキュメント上でマクロを実行してバシバシなおしましたよ。
一度作ってしまえばあとは楽チンですからね。
マクロにはこんな使い方もあります^^
PERSONAL.xlsの説明サイト
インストラクターのネタ帳
パーソナルエクセルとは何ぞや?という説明があります。
personal.xls 強化講座
パーソナルエクセルの設定方法。
そのほか便利なマクロ集があります。
私はかなりこのサイトのマクロにお世話になっています。
特に「全シートをHOMEポジションに」というのが便利!
複数シートの重~いファイルを作ったことありません?またシートが下にやけに長~いファイル。
ページごとにカーソルが変な位置にあって、一ページ目を見ているつもりが途中ページだったりした!とか。
また客先に提出するときにカーソルの位置調整とかしないといけないですよね。
そんなときにこのマクロが超便利です!
PERSONAL.xls パーソナルエクセルって知ってる?
パーソナルエクセルって知ってますか?
これは超便利な機能です。
私はエクセルのマクロ集を作ったんですが、よく使う機能ばかりを集めたのでいちいちマクロ実行ボタン押すのめんどくさいな~って思ってたんですね。
そこで調べていきついたのがPERSONAL.xls。。
何をど~するいかっていうと、エクセルを開いたときに、メニューバーに自分の作ったマクロをボタンとして追加しちゃう!というものです。
これのおかげでいちいちマクロ用のエクセルを開かなくてもよくなりました。
具体的な設定方法はかなり面倒。ちなみにvistaや2007では動かない感じ・・これがちょっと悲しいです。
誰か情報持ってたら教えてください(*_*)
ここまでのまとめ
どうでしょう?ここまででプログラムって何?ってことが少しわかったかと思います。
今まで勉強したEXCELのVBAですが、ACCESSにもVBAがありますし、VBAがわかればVBがわかる!
といっても問題ないと思います。
VBAがわかればVBスクリプトもわかりますし、VBがわかればjavaを勉強するときにも楽になります。
VBとjavaの違いって、文法が違ったり、単語が違ったりするだけ。
英語かフランス語かってな感じです。DOSも同じ。
インターネットにつながっていれば単語を覚えずにネットで調べればOKだから英語を勉強するほど本気になる必要もありません。
自分にあった説明サイトを見つけておけば、あとは独学でなんとかなります☆
VBAについて学べるサイト
Excel VBA 入門講座
上のサイトでは私より詳しく説明してくれています。
より複雑なマクロを作る場合はかかせない情報です。
エクセル VBA マクロ集
便利なマクロが無料で公開されています。
自分がやりたいことがこのサイトにあったなら、あとは自分のエクセルのマクロに追加するだけ!
「EXCEL」「マクロ」「初心者」「VBA」などのキーワードで検索すると自分にあったHPが見つかると思います。