エクセル,マクロ,VBA,ワークシート,関数
Excelを使い始めた人が関数やマクロなどを使用しようとしたときに感じる疑問として「VBAとワークシート上の関数は何故違うんだろう?」と思う方が多いと思います。
結果的にはワークシートの関数とVBAの関数は全くの別物と思ってください。
以下にVBAとワークシートの関数の違いを少しご紹介します。
○同じ意味の関数で、スペルが違う関数
【今日の日付取得】
VBA関数 :「Date」
ワークシート関数:「Today」
【日付の間隔を取得】
VBA関数 :「Datediff」
ワークシート関数:「DATEDIF」
○スペルが同じで、違う動作をする関数
【Round】
VBA関数 :丸め処理
ワークシート関数:四捨五入
など他にも色々あります。
同じ動作をする関数というのはたまたま同じように名前がつけられただけです。同じ名称で同じ動作という関数はめったにないと思った方がいいと思います。
Excel5.0からマクロでVBAを記述するようになりましたが、それより前のバージョンのではマクロにワークシート関数に書いているように記述していました。VBAというのはVB(Microsoft Visual Basic)というプログラム言語を元にして作成された言語となっています。
Officeでは、WordやAccessにもマクロがあり、それぞれWordBasic、AccessBasicというように全く機能がバラバラのものが採用されていました。それを統一しようとして作られた言語がVBA(Visual Basic for Applications)ということなのです。
と言う経緯があることから、Excel独自の関数とoffice全体のVBA関数とは違うということが分かりますよね。
----------
========================================
エクセル,マクロ,ふりがな,PHONETIC,実行
Excelをデータベースとして使う際には、「ふりがな」というのは重要な機能です。そして便利な機能です。フリガナの機能には「フリガナをふる」「PHONETIC関数を使ってフリガナを取得する」など色々な機能があります。
まぁ日本語入力と漢字の関係性から言っても万全ではないのが弱点なのですが・・・
さらに弱点として、フリガナはExcel上で行われた入力の読みを保持しているだけと言う事も上げられます。ということは、読み(ふりがな)の情報を持っていなければふりがなというのは画面上に表示されないということになります。
ツールからふりがなをふる際の弱点としては、CSVファイルをエクセル上にインポートして使用する場合ですが、この場合は読みの情報は保持されない状態でインポートされてきます。ですから、ふりがなのツール「メニュー[書式]→[ふりがな]→[表示/非表示]」を実行してもふりがながふられないということになります。
このような場合には「PHONETIC関数」を使ってマクロでふるようにしましょう。
【PHONETIC関数を使った、ふりがなをふるマクロ】
Sub Phonetic-Furigana()
Selection.SetPhonetic
Selection.Phonetics.Visible = True
End Sub
上記のようなマクロを作成して、フリガナをふりたいセルで実行するようにするとふりがなを取得することができます。
----------
エクセル,マクロ,記録,終了,名
エクセルをただの表計算だけに使用している方はもったいないですよ。マクロを使うと使い勝手がものすごく広がります。ここではマクロの使い方をご紹介しようと思います。
1.準備
・「Visual Basic」を追加します。
ツールバー上のどこでもいいので右クリックをします。
ショートカットメニューが開きますので「Visual Basic」を選択します。
2.マクロの作成
・ファイルを開くマクロの作成
「●」が描かれている「マクロの記録」ボタンをクリックします。
ダイアログボックスが開かれるので「マクロ名」に「ファイルを開く用」というマクロ名を入力します。
「説明」にどんなマクロを作成するのか説明を記入します。
「OK」ボタンを押します。
「記録の終了」ボタンが表示されます。
3.マクロの自動記録
・ファイルを開く作業の内容をマクロに自動記録する。
・適当なファイルを開きます。
・「記録終了」ボタンを押下します。
(「ツール」→「マクロ(の記録)」→「記録終了」でも同様の処理です。)
※ここで「記録終了」をしないと、それ以降の作業全てマクロに記録されてしまいますので注意してください。
4.マクロの実行
・先ほどマクロを記録するために開いたファイルを閉じます。
・マクロの実行ボタンを押下します。
(「ツール」→「マクロ」→「マクロ」でも同様の処理です。)
・マクロ名「ファイルを開く用」を選択したら、「実行」ボタンを押下します。
・マクロが実行されてファイルが開かれることを確認しましょう。
----------
エクセル,マクロ,修正,記録,終了
ここでは、エクセルのマクロの自動記録機能を使って作成するのとは逆に、マウスやキーボードなどを使用して操作できない。つまり自動記録で作成できないマクロを作成する方法をご紹介します。
1.マクロを修正(マクロ名「ファイルを開く用」を修正します)
・「Visual Basic Editor」ボタン選択します。
選択の仕方は「Visual Basic」ツールバーから「Visual Basic Editor」ボタンを押下してもいいし、「ツール」→「マクロ」→「Visual Basic Editor」でもどちらでもいいです。
・プロジェクトウィンドウにある、「標準モジュール」または「モジュール」をダブルクリックします。
・module1というマクロ名が表示されるのでダブルクリックをすると、マクロコード画面が表示されます。
2.マクロの追加(ここではメッセージを表示させるように修正します。)
・ファイルを開くマクロの前に「msgbox "ファイルを開きます。", , "メッセージの表示" 」と入力します。
・ファイルを開くマクロの後ろに「msgbox "ファイルを開きました。", , "メッセージの表示" 」と入力します。
3.マクロを保存する
・修正したマクロを保存します。
保存方法はVisual Basic画面右上の「閉じる」ボタンを押下するか、「ファイル」→「終了してMicrosoft Excelへ戻る」を選択すると出来ます。
4.マクロの実行
・修正したマクロを実行します。
実行方法は、マクロの実行ボタンの押下、または「ツール」→「マクロ」→「マクロ」の操作で可能です。
・マクロ名「ファイルを開く用」を選択したら、「実行」ボタンを押下します。
・メッセージが表示され、OKボタンを押した後にファイルが開かれることを確認しましょう。
----------
エクセル,マクロ,使い方,小規模,自由自在
マクロというのは、Excel、word、ロータス、一太郎などのソフト毎に専用のマクロがあり、スタート支持するだけで自動的に流れを処理してくれる機能の事を指しています。以下に説明するのはその中でもExcelのマクロについて使い方などを説明したいと思います。
例えばですが、会社の営業成績一覧表というのがあるとして、その中から優秀な営業マンの成績表を作成するという例題があるとして、これをマクロを組んで作ってみるとします。
マクロを使った方がより効果的と感じる時と言うのは、一連の作業に繰り返しの作業が多くあり、一回の作業だけではなく定期的に作業として繰り返される場合、一度使ったマクロならボタンを押すだけで簡単に何度でも作ることができるという時である。上記の例題ですと個人の成績表を定期的に繰り返し作らなければ行けない時に有効的に活用するものと思います。
また、会議などで発表する時にマクロを使って作ったグラフなどが見る見るうちに作成されていくところなどは結構見栄えもいいですし、強烈な印象を与えるものだと思います。
マクロを使うと、自由自在に分割が出来るのでより作成や保守などが簡単になると思います。雛形の用に小規模のマクロを作っておくのも後のマクロの使い勝手のよさに繋がってくると思います。小規模に分割されたマクロなどを組み合わせることで色々な作業において応用して使うことも出来るようになり、用途の幅が広がってくると思います。
----------
エクセル,マクロ,作成,手順,モジュール
エクセルのマクロプログラムを見ると結構訳わかんないと思って、すごく難しく見えるかもしれません。しかし実際は難しくは無いのです。何故難しくないかという種明かしをしたいと思いますので下記を参照してみてください。
○手順
1.マクロを記述できる画面(モジュール画面)を開いておきます。ここでは一連の操作の流れをマクロプログラムとして記録してくれます。
2.エクセルの「マクロ記録機能」を使用して、例えばある会社の成績表から個人の成績表およびグラフ作成をするという操作を行い、「マクロの終了」機能で記録を終了させます。
3.モジュール画面より、機能を見やすいように、かつメンテナンスがしやすいようにマクロを分割します。
4.それぞれのマクロの中で、例えば会社の人数が10人だとしたら「for 〜 next」などを書き加えて人数分が一度にできるようにセルの指定をしたり、固定で扱っていたところを変数にしてみたりしてメンテナンスを加えて使いやすいように書き換える。
5.マクロをそれぞれ実行してみる。
というのが、マクロの簡単な作成手順になります。マクロの記録を使って記録だけをしてもいいし、更にそのプログラムに手を加えてオリジナルにしてもいいし、使い勝手はさまざまです。
色々使ってくると使い勝手は無限に広がってきますので、色々と勉強しながらでもマクロを使いこなせるよう習得してみましょう。そうするとよりよいエクセルのマクロ生活が送れるはずです。
----------
エクセル,マクロ,Trim,空白,削除
エクセルでデータをソートして使おうと思ったのですが、文字列の先頭やいたるところに空白が入っていて正しくソートできません。正しくソートするためにTrimを使おうかと思ったのですが、使い方がよくわからなくてどうしたらいいか分からなくなってしまいました。
というような疑問をお持ちの方とかいると思います。ここでエクセルのマクロを使って空白セルを削除するプログラムを作ってみたいと思います。使う命令は「Trim」です。Trimは文字列中にある空白を取り除いた文字列を返してくれる関数です。
ここでちょっとしたエクセルの豆知識です。
エクセル上に文字列がたくさん記入されているとして、セルを選択したいときに使うキー操作ですが、「Ctrlキー」+マウスでセルを飛び飛びに選択することが出来ます。
また「Shiftキー」+「Ctrlキー」+矢印キーで、連続するエリアを選択することが出来ます。用途に合わせて使用してみてくださいね。
では、話を戻しまして、文字列中の空白除去のマクロプログラムです。
Sub 空白除去プログラム()
Dim abc As Range 'セルを定義
For Each abc In Selection
abc = Trim(abc) '左右の空白を削除して、「abc」を置き換える
Next
End Sub
ね。こんなに簡単にTrimのプログラムが出来てしまいました。これを使って空白除去してみてください。
ちなみにですが、Trim関数には以下の種類がありますので、用途に応じて使用してください。
・Trim(abc) → 文字列の左右にある空白を削除します。
・RTrim(abc) → 文字列の右側にある空白を削除します。
・LTrim(abc) → 文字列の左側にある空白を削除します。
・Application.Trim(abc)→文字列の左右、または途中にある空白を削除します。
以上、Trimに関して分かりましたでしょうか?色々使ってみてくださいね。
----------
エクセル,マクロ,初心者,何だろう,自動
エクセル初心者の方はよく思う疑問かもしれませんがエクセルにはマクロがあるというのは知っているけれども、エクセルマクロってどういうものなのか知っていますか?簡単に言うと面倒な処理を自動化して簡単に処理してしまおう!という便利な道具の事を指しています。
エクセルを業務やプライベートで使っている人ほど、「面倒だなぁ〜」「同じ処理何回もしたくないなぁ〜」「もっと簡単に出来ないのかなぁ」なんて思ったりしながら、仕方ないから同じ処理や面倒な処理をずっと繰り返して作業していることになりますよね。
そんな方にはエクセルマクロを使って作業すると簡単に処理を終わらせることが出来ると思いますよ。
と言っても何のことか分かりませんよね?
以下にちょっと例を挙げてみますので参考にしてみてください。
例えばですが、セルの中に英数字混在している数字と、混在していない数字があるとします。
「a100 b200 c300 400 d500 ........」というような感じで1000個位並んでいるとします。これの英字を全て取り除いて数字だけにしたいという場合、手で1000個全て英字を削除していってもいいのですが、時間がかかる上に、何回もこの処理をやらなきゃならないとなると面倒ですよね。
そういった場合、マクロでこの処理を組んでしまえば簡単に出来てしまうのです。
マクロの自動記録機能を使ったり、プログラムを直接修正したりしてマクロをつくり、実行するとマクロを実行する処理をするだけで、今まで一日かかっていた仕事が一瞬で終わるようになります。
こういった便利な機能の事をエクセルマクロと呼んでいるわけです。
----------
エクセル,マクロ,初心者,サイト,お勧め
エクセルのマクロについてですが、エクセルを基本的に触ることが出来る程度の初心者の人がエクセルのマクロを使おうとした場合に、最初に「マクロって何?」って思ってしまいますよね。初心者なのにプログラムが組めるのか?とか不安は尽きないと思います。
こういった人のために参考になるエクセルの初心者向けのサイトなどがありますのでご紹介したいと思いますので参考にしてみてください。
【初心者向けお勧めエクセルサイト】
・http://allabout.co.jp/computer/msexcel/closeup/CU20070505A/
・http://www.happy500z.com/
・http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_010.html
・http://www.sigoto.co.jp/excel/
・http://www.sanynet.ne.jp/~awa/excelvba/kouza.html
まずはエクセルとは何かを覚えましょう。
例えば、ここのセルの文字を大きくしたいと思った場合に、やり方を知っていると数秒で出来ますが、やりかたを知らないと調べることから始めなければなりません。またエクセルの標準機能で簡単に出来る処理とマクロを組んだ方が簡単に出来る処理との区別も付かなくなります。ですから、まずはエクセルをきちんと勉強してからマクロや関数なりに取り組んだ方がエクセルマスターへの近道となると思います。
----------
エクセル,マクロ,ウィルス,削除,ワークシート
Excelマクロウイルスというのは、エクセルのプログラムフォルダ(モジュール)内にある「XLStart」というフォルダの中にウィルスのワークシートを作成することで感染するというものです。
ウィルスに感染しないためにはまず最初に「XLStart」フォルダ内にあるワークシートがウィルスワークシートでないことを検査して確認しておく必要があります。何故かというと「XLStart」フォルダにあるワークシートファイルはエクセルの起動時に自動的に開かれるのでエクセルが開いたと同時に感染してしまう危険性があるからです。
「XLStart」フォルダ内に作られるウィルスのファイル名ですが、Larouxウィルスに関しては「personal.xls」または「pldt.xls」ファイル名で作られるし、Ninjaウィルスに関しては「Ninja.xls」等のファイル名で作られます。このウィルスファイルがフォルダ内に存在するかどうかの確認ですが、エクスプローラで確認することが出来るのでエクセルと開く前に確認して削除してから使用することが重要になります。
また、ウィルスファイルが存在した場合で、マクロを設定している場合ですが、以下のように処理をして削除するようにしてください。
1.メニューの[ツール(T)]→[マクロ(M)]を選択
2.ダイアログボックスが開いたら「auto_open」「check_files」のマクロを一つずつ「削除(D)」で削除してください。
3.このときシートが非表示の場合には削除処理が行えないので、メニューの[ウィンドウ]→[ウィンドウ再表示]で表示させてから削除するようにしてください。
----------