エクセルマクロでデータ移動
エクセルのファイルとファイルでデータを移動させるマクロを組みたいのですが、パソコンが違う場合や、ドライブが違う場合でも正常に動くようにしたいのですが、どうしたらよいでしょうか?一応パソコンが同じで、パスも同じもののマクロは完成しています。
という疑問があったとします。以下のように記述してみてください。参考になるかもしれません。
まずはメニューの「ツール」→「マクロ」→「Visual Basic Editor」を選択します。または「ALT」+「F11」を選択しても同じVBE画面を開きます。
このVBE画面にある「プロジェクト」というタイトルウィンドウというエクスプローラのようなところにある「標準モジュール」→「Module1」というマクロ名のところをダブルクリックします。そうすると、Module1の内容が表示されます。これにマクロのコードが記述されています。
このコードの中に、ファイルの移動先のパスが記述されているところがありますので、新しいパス名に変更するだけでパソコンが違っても、ドライブが違ってもデータの移動が出来るかと思います。「
頻繁にファイルの移動をするのであればもっとマクロ自体に工夫が必要かと思うのですが、そうじゃないのならとりあえずはこれだけで今あるマクロを生かせると思います。
もっと、高度な事をやり通すのならVBEの勉強をするのが先決なのではないかと思います。まだまだマクロとVBEに関しては勉強する事があると思います。
自分で作成したマクロをアドインするには?
まずは、「Visual Basic」ツールバー→「マクロの記録」を選択し、ダイアログボックスを表示させます。そうすて、「マクロの保存先」というのを「個人用マクロブック」を選択し、マクロを記録させます。
ここで記録されたマクロは「Windows\Application Data\Microsoft\Excel\Xlstart」のフォルダ内に「Personal.xls」という名前で保存されています。
こうなると、次回にエクセルを起動すると、保存の影響がでるなどしてしまいます。
この保存先を個人用の「Personal.xls」ではなく、「作業中のブック」にします。
この「作業中のブック」にマクロを保存し終わったら、「ツール」→「ユーザ設定」を選択しダイアログボックスを表示させます。
このダイアログボックスで「コントロール」タブを選択します。
ここの左側にある「分類」でマクロを選択すると、右側にスマイルマークのボタンが表示されます。そのボタンをツールバーにドラッグ&ドロップしてください。
そうすることによって、「選択したボタンの編集」というところが有効になりますのでマクロの登録で先ほど記録したマクロを選択します。
その後、適当なところにそのブックを保存してください。
マクロを実行するときはエクセルを再起動し、ツールバーに表示されているスマイルマークのボタンを押下してくださし。
これで大丈夫だと思うのですが、いかがでしょうか?試しに試してみてくださいね。
削除したのにエクセルのマクロが表示される理由は?
エクセルにあるマクロを、「新しいマクロの記録」で作業を行った後、マクロを削除しました。ですが、次にファイルを開いたときに「開こうとしたファイルにはマクロが設定されています」というメッセージが表示されてしまいます。
マクロを削除したはずなのにおかしい話ですよね。。。
これを表示させないためには、以下のようにしてみてください。
1.ファイルを開きます。
2.「ツール」→「マクロ」→「Visual Basic Editor」と選択し、VBAエディタを開きます。(このとき、「ALT」+「F11」でも同様にVBAエディターが開きます。
3.ここで画面左側にある「標準モジュール」をクリックします。そうするとマクロ名「Modulu1」が表示されます。この標準モジュールがマクロの本体ですので、これを削除しないと最初に表示されるメッセージのダイアログは消せないと思います。
4.マクロ名を右クリックし、「Module1の解放」を実行します。
標準モジュールの左側に「+」というのがあるので、それをクリックする事で表運モジュールが展開されますので、そこで右クリックをしてくださいね。
5.このとき、「エクスポートしますか?」とメッセージが表示されます。保存をする必要なここではないので、「いいえ」を選択します。
これでメッセージは次回から表示されないはずです。
参考になりましたでしょうか?一応メッセージは表示されないはずですので実行してみてくださいね。
エクセル初心者のマクロ
エクセルのマクロをVBを覚え始めている方にとっては、すぐ色々な問題に行き当たってしまいがちですよね。
例えばですが、あるセルの内容が「A」なら「マクロA」を実行し、「B」なら「マクロB」を実行するという、セルの内容によって実行させるマクロを選択するという条件分岐を付けたい場合ですが、こういうのを初心者の方がやろうと思うと結構大変な作業になるんじゃないかと思います。
セルの内容を条件にして別のマクロを実行させるというのは結構難しいので、セルの値を条件にして処理を分けるというマクロを記述してみます。
具体的にマクロを記述してみると
Sub test()
If Range("A1").Value=A Then
☆セルA1の値が「A」の時の処理☆
Else
If Range("A1").Value=B Then
☆セルA1の値がBの時の処理☆
Else
☆上記のどちらでもない時の処理〜☆
End If
End If
End Sub
というように記述してみてはいかがでしょうか?
「A」の場合の処理と、「B」の場合の処理をそれぞれ記述し、最後に「A」「B」以外の文字が入ってきたときの場合の処理も記述していた方が、色々なバージョンに対応できると思うのでいいかと思います。
まぁここまでやる前にとりあえずはメッセージを表示させて見るなど簡単な処理からはじめてみるのもいいと思います。頑張ってエクセルマクロを使いこなして、色々な処理が出来るようになるように頑張ってくださいね。
エクセルのマクロって何なんでしょうか?
エクセルのマクロってよく聞くけど、エクセルのマクロとはエクセルで使われるプログラムの事です。結構色々な事が出来まるよ。でもエクセルに限らずパソコンをあまり使ってない方にとっては「プログラム」というと難しく感じられますよね。ですので、ちょっと触ってみることからはじめてみてはいかがでしょうか?
まずはエクセルのファイルを開いて、上の方にある「ツール」→「マクロ」→「新しいマクロの記録」を選択します。そこにある「記録開始(●)」を押下して、まずはどこでもいいのであるセルに「あいうえお」と文字を入力してみます。それが済んだら「終了(■)」を押下します。これでマクロの完成です。
先ほど入力した文字を削除した後に、「ツール」→「マクロ」→「マクロ」を選択して、先ほど記録したときに指定をしたマクロ名を選択し(実行)します。そうすると先ほど削除したセルに「あいうえお」と文字が自動的に入力されます。
ね。こうしてみるとマクロって簡単なんだなって思いますよね。
もちろん、VBAなどを使ってガリガリプログラムを自分で組んでいく方法もありますが、やりたい事を実行してそれをマクロに記録させていく方法というのもあります。
例えばですが、プログラムを使って文字のフォントサイズを変えたり色を変えたりと設定が多いとそれだけでも大変な作業になってしまいますので、自動記録機能を使って作業にコンピューターに記憶させて適当にマクロ名を付け、実行させるというのがマクロを始めるときには一番取り掛かりやすいものなのではないかと思います。
エクセルのマクロで範囲を選択してみましょう。
毎日エクセル上にデータ入力などをしているとしたら、データって毎日毎日増えていっていますよね。そのデータから何かの条件を指定して検索するときに、毎日検索範囲が変わっていくとしたらその都度対象セルを修正するのは面倒ですよね。
これをマクロを使って解決はできないのでしょうか?
データは、1行に1データで入力されていっているものとします。
【範囲を選択する方法】
方法その1.アクティブセル領域を判断する方法
Sub kettei1()
Dim TBL As Range
Worksheets("Sheet1").Activate: Range("A1").Select
'セルA1を含む、アクティブセル領域(空白行と空白列で囲まれたセル範囲)を選択します
Set TBL = ActiveCell.CurrentRegion
TBL.Select
End Sub
方法その2.アクティブセル領域を判断する方法(表題などを除きます。)
Sub kettei2()
Dim TBL As Range
Worksheets("Sheet1").Activate: Range("A1").Select
'セルA1を含む、アクティブセル領域(空白行と空白列で囲まれたセル範囲)を選択 Set TBL = ActiveCell.CurrentRegion
'1行下の位置から1行少ないところをを設定している
Set TBL = TBL.Offset(1, 0).Resize(TBL.Rows.Count - 1, TBL.Columns.Count)
TBL.Select
End Sub
エクセルで印をつけるマクロを作成したい
エクセルのマクロを使ってある条件の時に「印」を設定してみましょう。
例題)エクセルシート上に「男」「女」「夫」「妻」など数箇所に選択欄があってそれぞれのいずれかに「○」を設定してください。
という例題があります。マクロじゃなくオートシェイプで「○」をつけていくと言う方法もあるのですが、件数が多いとその分時間も掛かってしまって面倒ですよね。間違うかもしれないし・・・
そこで、マクロを使って作成してみたいと思います。
以下のようなマクロをVBE上にコーディングしてみてください。
VBEの開き方は、「ALT」+「F11」で開きます。
Sub sirusi()
Dim a As Range
If TypeName(Selection) = "Range" Then
Set a = Selection
ActiveSheet.Shapes.AddShape(msoShapeOval, a.Left, _
a.Top, a.Width, a.Height).Select
Selection.ShapeRange.Fill.Visible = msoFalse
a.Select
End If
End Sub
以上です。これをVBE上に表記し、画面を閉じてください。
次に実行してみましょう。
ATL+F8でマクロ一覧を開き、sirusiを選択します。この状態で「オプションボタン」などを選択し、ショートカットに任意の文字を入れておきます。ここでは「Y」あたりにしておきます。
エクセル上で適当にセルを選択してCtrl+Yを押下してみてください。そのセルに「○」が表示されるようになっているのを確認してください。
エクセルのマクロを使って計算してみましょう
箱の重さの計算結果をエクセル上に表示させるマクロを作成したいのですが、イメージ的には材料を数種類オプションボタンにて画面上で選択をさせて重さを計算させて表示させるということです。
材料の単位あたりの重さはエクセルの別の表に入力してあります。
重さは、高さ×幅×奥行きで計算させる予定です。
こういう計算式って簡単にエクセルのマクロで作成できるものなのでしょうか?
単純にエクセルの表にして計算結果を出そうとすると、材料全ての重さが表示されてしまうし余計なものが表示されてしまって、表示結果を見ている方としては分からなくなるんじゃないかと思っています。
このような事象を回避するためにはどのようなマクロを組んだらよいのでしょうか?
というような問題があるとします。この問題を解決するためにマクロを以下のように作成してみました。
材料は数種類ということでしたが、ここでは3つ選択できるようにしてみました。
エクセルの表上には、高さをA2のセルにいれ、幅をB2、奥行きをC2セルに入力するようにします。
また、オプションボタンのリンク先をD1セル、単位たたりの重量をE1〜3に設定・入力するようにしてみます。
Sub 重量計算()
Dim H As Variant
W As Variant
L As Variant
H = Range("A2").Value '高さ
W = Range("B2").Value '幅
L = Range("C2").Value '奥行き
Select Case Range("D1").Value
Case 1
MsgBox "箱の重さは" & H * W * L * Range("E1").Value & "です。", , "計算結果です。"
Case 2
MsgBox "箱の重さは" & H * W * L * Range("E2").Value & "です。", , "計算結果です。"
Case 3
MsgBox "箱の重さは" & H * W * L * Range("E3").Value & "です。", , "計算結果です。"
End Select
End Sub
以上、参考にしてみてくださいね。
エクセルのマクロを削除するには?
エクセルでマクロを使用していて(自分で作成したのでも、自動記録をしたものでもいいのですが)作りすぎてよく分からなくなってしまってはいませんか?
溢れかえったマクロを整理していくのもよりよいエクセルのマクロを使いこなす上で大切な事だと思います。
削除をするのに例えば「ツール」→「マクロ」→「マクロ」を選択したときに表示されるウィンドウ上で、必要が無いマクロを選んで「削除」ボタンを押した場合に「表示されていないブックのマクロは編集できません。[ウィンドウ再表示]コマンドを選択して、ウィンドウを表示してください。」というようなメッセージが表示されて削除できなかったりして一筋縄では行かないなんて思ってはいないでしょうか?
削除方法ですが、エクセルのシートを開いている状態で、メニュー「ツール」→「マクロ」→「Visual Vasic Editor」を選択し、モジュール画面を表示させます。(Alt+F11でも同じようにモジュール画面が開きますので試してみてください。)
そのモジュール画面の左側にエクスプローラのような画面が開いていますので、そこから「標準モジュール」を選択します。
そうすると展開された中に「MODULE1」というのがありますので「MODULE1の開放」を右クリックから選択してください。その他にも更にモジュールがありましたらMODULE1と同様の処理をして削除してください。
マクロの記録という自動記録処理を使ったマクロなら大抵はこれで削除できるはずです。
エクセルのマクロの開き方の違いの意味
エクセルのファイルに登録されているマクロを表示させる時には大きく分けて二つ開き方があります。
一つ目はシートモジュールから開かれる方法で、ファイルの各シート名のところで右クリック→「コードの表示」を選択して開かれるもので選択したワークシートのイベントまたはシートに貼り付けたコントロールのイベントプロシージャが表記されているところです。例えばシートをアクティブにしたり、セルを変更したりというイベント時のプロシージャとかの時などです。利点と言うと、既にワークシートが特定されているのでマクロを表記する時にどこのワークシートという指定をわざわざしなくてもきちんと認識されている事です。
二つ目は標準モジュールから開かれる方法で、マクロの作成時に「挿入」→「標準モジュール」で開かれる画面でマクロを表記しているものです。この標準モジュールは使う側が意図的にコード内容を記述する、つまりプログラムを組むということをすべく、マクロのダイアログボックスなどから記述する方法です。例としては起動プログラム、本体プログラム、色々なところで使う共用モジュール、関数などを使っているモジュールなどを使うことが出来ます。一つ目の方法とは少し異なる形になりますね。
以上、簡単に違いを書きましたが表面的な分類でしか捉えていません。ですのでもう少し深い意味で捉えようとすると「クラス」とかVBAとかという知識が必要になってくるのでもう少し勉強してから出ないと理解しにくいかもしれませんね。
これだけ見てもエクセルというのは奥が深いなって感じますよね。
エクセルにマクロがある場合のOPEN時メッセージ
エクセルではマクロが含まれているファイルを開こうとすると、「マクロにはウィルスが含まれている可能性があります。マクロを無効にすると安全ですが、マクロが適正な場合機能が使えなくなります」というポップアップ画面でのメッセージが表示されます。
こういうメッセージが表示されると、ファイルを開くことをちょっと躊躇してしまいますよね。
エクセルに含まれているマクロってウィルス感染するのでしょうか?
メッセージはどうして表示されるのでしょうか?
メッセージを表示させないためにはどうしたらいいでしょうか?
などという疑問を持つ方もいっぱいいると思います。
エクセルのマクロですが、怖い事にマクロでウィルスを作ることが出来るようになっているんで、そのマクロでウィルス感染しないように警告メッセージをファイルを開く時に表示させているものなのでマクロが含まれている場合には表示されてしまいます。
その時に、ウィルスバスターなどのワクチンソフトの最新版などを使用されているとしたら特に心配することは無いとは思います。
メッセージを出力させない方法ですが、ポップアップ画面でメッセージが表示されているところに左下のあたりに「クロを含むブックを開く時はこのダイアログを表示する」というメッセージと横にチェックボックスがあるのでそこをチェックして閉じてください。そうすることで次回からメッセージが表示されなくなります。
また、エクセルを一度マクロを無効にして起動させます。「ツール」→「マクロ」→「VisualBasicEditor」でエディターを開いて標準モジュール内にファイルがある場合、解放→保存を行ってみてください。
エクセルのマクロってどういうもの?
エクセルについてなんですが、友人に「エクセルでマクロって使える?」って聞かれてついつい「うん。使えるよ〜」なんて返事しちゃったんですが、次に友人に会う時にエクセルのマクロの事を聞かれたらどうしよう?って今から悩んでいます。
そもそもエクセルのマクロというのはどういうもので、どういうときに有効で、マクロのメリット・デメリットとは何なのか分からないのですが。
というような質問がありました。理由はともかくエクセルのマクロって何なのか分からないって思っている人はたくさんいると思います。ここで少し説明したいと思いますので参考にしてみてください。
「マクロ」というのは、エクセルやワードなどを作業する上で効率よく作業が出来るようにサポートしているプログラム群の事を指しています。簡単に言ってしまうと、エクセルのマクロに関しては面倒な計算や同じような処理などを自動に処理してくれる機能という事になります。
エクセルマクロのメリットは、エクセルのデータをデータベースのように扱えるので処理が簡単になったり、複数の処理をボタン一つで出来ちゃったりというところにあると思います。
逆にデメリットですが、言語を多少覚えていなければプログラムを組むのに相当な時間を費やしてしまったり、使うタイミングを間違ってしまうと逆に時間がかかってしまったりするということになります。
また、エクセルの関数なども組み合わせて使えたりもするので色々なサイトなど見て勉強してみるのもいいと思いますよ。
エクセルマクロが必要か不必要かの判断をつけましょう。
エクセルで使うマクロってパッと見はすごく便利な物に見えますよね。確かに便利だと思います。複雑な処理が一瞬で終わったりするのですから。例えばですが、ファイルの1シートにデータを作成しておいてボタンを押すだけで何人分もの請求書作成ができるなんていうことも出来ちゃうのです。
しかし、単純にデータを計算してそのデータを元に印刷するだけなのであれば、マクロではなくシート間の参照式で済むかもしれないですし、複数回使う資料なのならマクロもありでしょうけど、1回だけなのならマクロを組む労力の方が大変なのではないかと思ってしまいます。マクロを実行するだけなのなら難しいことはないのですが、作成する労力と考えると少し大変になりますよね。
このようにマクロを使用することが必ずしも作業を効率化するとは限らないということになります。
また、エクセルのマクロはVBAとは違い、エクセル独自の特殊性もあるのでトラブルがあった時に時間をものすごく必要としたり動作環境などによっては動かなかったりと色々弊害も多くあるかと思います。
まずは、マクロを簡単なところから使ってみて、慣れてきたところで大掛かりなものを作成して使ってみるといった流れでやっていってはどうでしょうか?
マクロに関するサイトをご紹介しますので参考にしてみてくださいね。
・http://www.kotaete-net.net/(答えてねっと)
・http://www.moug.net/(モーグ)
エクセルのマクロを勉強したい!
エクセルを私用でも仕事でも使っている人が思うことに「マクロを使いこなせるようになりたい」というのがあると思います。仕事で使う分には回りに知っている人がいると思うので思う存分聞くことが出来ると思うのですが、家でだけやっている人からしてみるとなかなか勉強しにくいですよね。しかも学校とか通わずにお金をかけずに使いこなせるようになるまでとなったらちょっと大変じゃないかと思います。
そこで、勉強するにあたってのとっかかりとして、まずはVBA(Visual Basic for Aplication)を勉強するのがいいのではないかと思います。VBAはBasicというプログラムをエクセル用に改良したものなのです、まずはBasicの基本的な文法などを覚え、それに付け加えてエクセルのシートやセルを扱うために必要な手法などを覚えていけばいいと思います。
ネット上では「エクセル VBA 入門」などと検索をかけるとかなり多くのサイトがヒットしますので見やすいサイトを選んで勉強するのも手ですし、エクセル上の「ツール」->「マクロ」->「Visual Basic Editor」から見られる「ヘルプ」画面を見てやりたい事を少しずつ学ぶのもいいと思います。
なかなか独学でやるとなると大変だとは思いますが、やりたいことが明確化されている場合だと達成目標などがありますのでかなり頑張れるんじゃないかと思います。皆さんエクセルでマクロを使いこなせるように頑張って勉強していきましょうね。
エクセルファイルのマクロは存在しているのか?
エクセルのファイルを開くときに、「xx.xlsファイルはマクロを含んでいます。」というポップアップメッセージが表示される場合がありますが、このときマクロを有効にするか無効にするかを指示してファイルを開かなければなりませんが、どんなマクロが含まれているのか分からないのに、有効にするのは怖いですよね。
まずは「無効」で開いてマクロが存在するかどうか確認してみましょう。
「ツール」→「マクロ」→「Visual Basic Editer」でモジュール画面を開きます。
初期値で何も触ってない状態なのであれば、新規に開いたウィンドウの左側の所に、表面上はエクスプローラのような感じで「Sheet1」「Sheet2」・・・と表示されているはずです。その一つ一つを全てクリックしていくと、どこからかマクロが出てくると思います。
では、何故ポップアップ画面が開くかと言うと、マクロウィルスが存在する為警告メッセージが表示されているのです。
もしも、どこかからマクロが記述されているところが出てきたらそれらを全て削除してください。
また、マクロが記述されていない場合でも、「フォーム」「標準モジュール」というフォルダが存在する場合は、マクロと判断されてしまいますので、右クリックして「xxの開放」を実行するようにしてください。
それでもポップアップが出るようであれば、マクロウィルスの可能性がありますのでウィルスソフトを起動するようにしてください。
エクセルで作ったマクロを別のパソコンで使用したい!
エクセルでマクロを作って利用していますが、他のパソコンに入っているエクセルでその作成したマクロを利用したいのですが、どうしたらいいでしょうか?ちなみにOSもエクセルのヴァージョンもどっちのパソコンとも同じものを使用しています。という要望を持っている方って結構いると思います。
一度作ったマクロは別なところでも利用できるものなら利用したいですよね。
そこで、別のパソコンにあるエクセルでマクロを利用したい場合は、そのエクセルファイルをUSBメモリやFDD、CD〜ROMなどの媒体にコピーしておいて、利用したいパソコンにコピーして使います。
1.エクセルマクロファイルを媒体に保存します。
2.エクセルを開いてマクロを有効にしておきます。
3.「ツール」→「マクロ」を選択するとマクロの一覧が表示されますのでコピーしたい対象のマクロを選択し、「編集」を選択するとVBEが表示されます。
4.ドライブのパスを変更するだけでマクロが使用できるようになります。
利用もとのマクロがエクセル上で動作するPERSONAL.XLSなのか、ファイルのみのものなのかその都度変わるので確認する必要はあると思います。また間違いがあるのであれば「デバック画面」が出てきますので警告メッセージを見て確認してみてください。
これを利用できるようになれば数秒で処理が終了するし、エクセルの利用幅がものすごく広がると思いますので是非試してみてくださいね。
エクセル上にあるコマンドボタンの扱い方2
「コマンドボタン」に登録されているマクロなどを確認出来るようになれば、修正や応用など色々幅が広がると思いますので勉強してみましょう。
「コマンドボタン」に登録されているエクセルのマクロを確認するためには、通常では確認できないようになっています。確認する方法ですが以下のようになります。
1.エクセルを「デザインモード」に切り替えます。
・「表示」メニュー→「ツールバー」→「コントロールツールボックス」で、ツールバーを表示させます。
・ツールバーにある「デザインモード」ボタンをクリックしてデザインモードに切り替えます。
2.マクロが登録されている「コマンドボタン」をクリックします。
3.「コントロールツールボックス」ツールバーの「コードの表示」をクリックし、VBE(Visual Basic Editor)を起動させます。
※この時点で「コマンドボタン」に関するコードが表示されるようになります。
コードそのものは「Private Sub」〜「End Sub」までの間で記述されています。
マクロの名前は、「コマンドボタン」につけられている名前(例えばbutton1とします)+「_(アンダーバー)」+「Click」という命名になっています。これは「コマンドボタンがクリックされた時」の処理であることを示しています。
例えば、この間に記述されている命令を修正すると、コマンドボタンがクリックされた時の処理が変わりますし、マクロの名前を別の処理のマクロ名に変えると全然違う処理が実行されます。
実行する時にはVBEを終了させて「デザインモードの終了」をして、エクセルを通常のモードに切り替えてからコマンドボタンを押下して実行するようにしてください。
エクセル上にあるコマンドボタンの扱い方
エクセルのマクロをボタンに登録するのなら、「コマンドボタン」ではなく「ボタン」(フォームツールバーから作成するタイプ)の方がいいのではないかとおすすめします。
しかし、人によっては色々なところにマクロを登録している場合があります。そこで既にあるファイル上にコマンドボタンが作成されている場合、どこにマクロが登録してあるとかという扱い方を知っていると勉強になると思いますのでご紹介します。
最初に、シート状にあるボタンが「コマンドボタン」かフォーム上のツールバーから作成された「ボタン」なのかを判断する必要はありません。ただし、それぞれのボタンに登録されているマクロの内容を確認したり、別のマクロをボタンに登録したりするときに操作方法が二つとも少し違うので、その違いを覚えておかなくてはならないと思います。
そういう理由だとボタンの種類を確認する必要があるので確認しましょう。簡単に確認する方法としてはマウスポインタをボタンの上に移動させてみます。そのときマウスポインタが手の形になったら、そのボタンはフォームのツールバーから作成された「ボタン」ということになります。
逆に、ボタンの上にマウスポインタを移動させて矢印のままだとしたらそれは「コマンドボタン」ということになります。
上記のような判断方法で、ボタンの種類が分かると思いますのでその種類によってマクロを登録する場所などを勉強していくといいと思います。
エクセルでマクロを作ってみましょう(修正編)
エクセルのマクロを修正して実行してみましょう。
簡単なマクロ(例えば、ボタンをクリックしたらメッセージが表示されるという内容)を作成したとします。
マクロのプロシージャ名を「cmd実行_Click」、メッセージを「マクロ完成!!」とするとします。
この「cmd実行_Click」の中を差し替えるだけで色々なマクロを作成する事が出来るのです。
ここでは、既に記述されている「マクロ完成!!」というメッセージを「マクロの修正完了!!」というメッセージに変えてみるという修正をしてみます。
修正方法
1.エクセルのメニュー→「ツール」→「マクロ」→「Visual Basic Editor」で選択をします。
2.VBEが画面上に表示されたところで、msgboxの中身を変えて見ましょう
・修正前
Private Sub cmd実行_Click()
msgbox "マクロ完成!!"
End Sub
・修正後
Private Sub cmd実行_Click()
msgbox "マクロの修正完了!!"
End Sub
3.デザインモードを終了してエクセルの画面に戻り、ワークシート上に作成していたコマンドボタンをクリックします。(ここではコマンドボタンでなくても、セルに直接マクロ名を指定しても大丈夫です。)
4.「マクロの修正完了!!」というメッセージが出たら成功です!
5.作成したマクロが入っているファイルはマクロのテスト用にも仕えますので、テスト用.xlsという名前をつけてファイルを保存して置いてください。
エクセルでマクロを作ってみましょう
エクセルをあまり使った事がない人ですと「マクロ」と聞いただけで敬遠しちゃいますよね。でも大丈夫です。慣れれば誰でもマクロは使えるようになりますよ。
まず手始めに簡単なマクロをご紹介しますので一緒に作ってみましょう。
【例題】
ワークシート上にあるコマンドボタンを押し、「マクロ完成!!」というメッセージを出力しましょう。
上記の例題はメッセージを出すだけと言う非常に簡単なマクロですが、もっとも役に立つマクロです。このメッセージ部分を変えるだけでいろんな事に使えるようになります。
【作成方法】
1.ワークシート上にコマンドボタンを作成する
・コマンドボタンを置きたいエクセルファイルを開きます。
・メニュー→「表示」→「ツールバー」→「コントロールツールボックス」→「コマンドボタン」を選択します。
・コマンドボタンを配置したい場所に配置します。(このときコマンドボタン上には「CommandButton1」と表示されているはずです。
2.コマンドボタンのプロパティの変更
・コマンドボタンの表示名を「実行」に変えてみましょう。
「プロパティ」→「Caption」の所を「実行」に変更します。(これでボタンの見た目は「実行」に変わります。)
・実行するマクロを指定します。
「プロパティ」→「オブジェクト名」のところを「cmd実行」に変更します。
3.プログラム(マクロ)を記入してみましょう。
・ワークシート上の「実行」ボタンをダブルクリックすると、Visual Basic Editor(VBE)が開きます。
このときEditor上にはSheet1(Sheet1)に「cmd実行_Click」という名前で空のプロシージャが作成されています。
・Option Explicit
Private Sub cmd実行_Click()
msgbox "マクロ完成!!"
End Sub
・ツールボックス→「デザインモードの終了」でプログラム作成終了です。
4.マクロの実行
・「ファイル」→「終了してマイクロソフトエクセルに戻る」でワークシートの画面に戻る。
・画面上の「実行」ボタンをクリックしてみてください。ここで「マクロ完成!!」というメッセージボックスが出たら成功です。
Excelマクロウイルスとは?
Excelマクロウイルスというのは、エクセルのプログラムフォルダ(モジュール)内にある「XLStart」というフォルダの中にウィルスのワークシートを作成することで感染するというものです。
ウィルスに感染しないためにはまず最初に「XLStart」フォルダ内にあるワークシートがウィルスワークシートでないことを検査して確認しておく必要があります。何故かというと「XLStart」フォルダにあるワークシートファイルはエクセルの起動時に自動的に開かれるのでエクセルが開いたと同時に感染してしまう危険性があるからです。
「XLStart」フォルダ内に作られるウィルスのファイル名ですが、Larouxウィルスに関しては「personal.xls」または「pldt.xls」ファイル名で作られるし、Ninjaウィルスに関しては「Ninja.xls」等のファイル名で作られます。このウィルスファイルがフォルダ内に存在するかどうかの確認ですが、エクスプローラで確認することが出来るのでエクセルと開く前に確認して削除してから使用することが重要になります。
また、ウィルスファイルが存在した場合で、マクロを設定している場合ですが、以下のように処理をして削除するようにしてください。
1.メニューの[ツール(T)]→[マクロ(M)]を選択
2.ダイアログボックスが開いたら「auto_open」「check_files」のマクロを一つずつ「削除(D)」で削除してください。
3.このときシートが非表示の場合には削除処理が行えないので、メニューの[ウィンドウ]→[ウィンドウ再表示]で表示させてから削除するようにしてください。
初心者でもエクセルでマクロは組める?
エクセルのマクロについてですが、エクセルを基本的に触ることが出来る程度の初心者の人がエクセルのマクロを使おうとした場合に、最初に「マクロって何?」って思ってしまいますよね。初心者なのにプログラムが組めるのか?とか不安は尽きないと思います。
こういった人のために参考になるエクセルの初心者向けのサイトなどがありますのでご紹介したいと思いますので参考にしてみてください。
【初心者向けお勧めエクセルサイト】
・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
まずはエクセルとは何かを覚えましょう。
例えば、ここのセルの文字を大きくしたいと思った場合に、やり方を知っていると数秒で出来ますが、やりかたを知らないと調べることから始めなければなりません。またエクセルの標準機能で簡単に出来る処理とマクロを組んだ方が簡単に出来る処理との区別も付かなくなります。ですから、まずはエクセルをきちんと勉強してからマクロや関数なりに取り組んだ方がエクセルマスターへの近道となると思います。
エクセルのマクロって何だろう?
エクセル初心者の方はよく思う疑問かもしれませんがエクセルにはマクロがあるというのは知っているけれども、エクセルマクロってどういうものなのか知っていますか?簡単に言うと面倒な処理を自動化して簡単に処理してしまおう!という便利な道具の事を指しています。
エクセルを業務やプライベートで使っている人ほど、「面倒だなぁ〜」「同じ処理何回もしたくないなぁ〜」「もっと簡単に出来ないのかなぁ」なんて思ったりしながら、仕方ないから同じ処理や面倒な処理をずっと繰り返して作業していることになりますよね。
そんな方にはエクセルマクロを使って作業すると簡単に処理を終わらせることが出来ると思いますよ。
と言っても何のことか分かりませんよね?
以下にちょっと例を挙げてみますので参考にしてみてください。
例えばですが、セルの中に英数字混在している数字と、混在していない数字があるとします。
「a100 b200 c300 400 d500 ........」というような感じで1000個位並んでいるとします。これの英字を全て取り除いて数字だけにしたいという場合、手で1000個全て英字を削除していってもいいのですが、時間がかかる上に、何回もこの処理をやらなきゃならないとなると面倒ですよね。
そういった場合、マクロでこの処理を組んでしまえば簡単に出来てしまうのです。
マクロの自動記録機能を使ったり、プログラムを直接修正したりしてマクロをつくり、実行するとマクロを実行する処理をするだけで、今まで一日かかっていた仕事が一瞬で終わるようになります。
こういった便利な機能の事をエクセルマクロと呼んでいるわけです。
エクセルのマクロの使い方(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に関して分かりましたでしょうか?色々使ってみてくださいね。
エクセルでマクロを作ってみましょう
エクセルのマクロプログラムを見ると結構訳わかんないと思って、すごく難しく見えるかもしれません。しかし実際は難しくは無いのです。何故難しくないかという種明かしをしたいと思いますので下記を参照してみてください。
○手順
1.マクロを記述できる画面(モジュール画面)を開いておきます。ここでは一連の操作の流れをマクロプログラムとして記録してくれます。
2.エクセルの「マクロ記録機能」を使用して、例えばある会社の成績表から個人の成績表およびグラフ作成をするという操作を行い、「マクロの終了」機能で記録を終了させます。
3.モジュール画面より、機能を見やすいように、かつメンテナンスがしやすいようにマクロを分割します。
4.それぞれのマクロの中で、例えば会社の人数が10人だとしたら「for 〜 next」などを書き加えて人数分が一度にできるようにセルの指定をしたり、固定で扱っていたところを変数にしてみたりしてメンテナンスを加えて使いやすいように書き換える。
5.マクロをそれぞれ実行してみる。
というのが、マクロの簡単な作成手順になります。マクロの記録を使って記録だけをしてもいいし、更にそのプログラムに手を加えてオリジナルにしてもいいし、使い勝手はさまざまです。
色々使ってくると使い勝手は無限に広がってきますので、色々と勉強しながらでもマクロを使いこなせるよう習得してみましょう。そうするとよりよいエクセルのマクロ生活が送れるはずです。
Excelのマクロとは
マクロというのは、Excel、word、ロータス、一太郎などのソフト毎に専用のマクロがあり、スタート支持するだけで自動的に流れを処理してくれる機能の事を指しています。以下に説明するのはその中でもExcelのマクロについて使い方などを説明したいと思います。
例えばですが、会社の営業成績一覧表というのがあるとして、その中から優秀な営業マンの成績表を作成するという例題があるとして、これをマクロを組んで作ってみるとします。
マクロを使った方がより効果的と感じる時と言うのは、一連の作業に繰り返しの作業が多くあり、一回の作業だけではなく定期的に作業として繰り返される場合、一度使ったマクロならボタンを押すだけで簡単に何度でも作ることができるという時である。上記の例題ですと個人の成績表を定期的に繰り返し作らなければ行けない時に有効的に活用するものと思います。
また、会議などで発表する時にマクロを使って作ったグラフなどが見る見るうちに作成されていくところなどは結構見栄えもいいですし、強烈な印象を与えるものだと思います。
マクロを使うと、自由自在に分割が出来るのでより作成や保守などが簡単になると思います。雛形の用に小規模のマクロを作っておくのも後のマクロの使い勝手のよさに繋がってくると思います。小規模に分割されたマクロなどを組み合わせることで色々な作業において応用して使うことも出来るようになり、用途の幅が広がってくると思います。
自動記録機能を使わないでエクセルマクロを作成してみよう!
ここでは、エクセルのマクロの自動記録機能を使って作成するのとは逆に、マウスやキーボードなどを使用して操作できない。つまり自動記録で作成できないマクロを作成する方法をご紹介します。
1.マクロを修正(マクロ名「ファイルを開く用」を修正します)
・「Visual Basic Editor」ボタン選択します。
選択の仕方は「Visual Basic」ツールバーから「Visual Basic Editor」ボタンを押下してもいいし、「ツール」→「マクロ」→「Visual Basic Editor」でもどちらでもいいです。
・プロジェクトウィンドウにある、「標準モジュール」または「モジュール」をダブルクリックします。
・module1というマクロ名が表示されるのでダブルクリックをすると、マクロコード画面が表示されます。
2.マクロの追加(ここではメッセージを表示させるように修正します。)
・ファイルを開くマクロの前に「msgbox "ファイルを開きます。", , "メッセージの表示" 」と入力します。
・ファイルを開くマクロの後ろに「msgbox "ファイルを開きました。", , "メッセージの表示" 」と入力します。
3.マクロを保存する
・修正したマクロを保存します。
保存方法はVisual Basic画面右上の「閉じる」ボタンを押下するか、「ファイル」→「終了してMicrosoft Excelへ戻る」を選択すると出来ます。
4.マクロの実行
・修正したマクロを実行します。
実行方法は、マクロの実行ボタンの押下、または「ツール」→「マクロ」→「マクロ」の操作で可能です。
・マクロ名「ファイルを開く用」を選択したら、「実行」ボタンを押下します。
・メッセージが表示され、OKボタンを押した後にファイルが開かれることを確認しましょう。
エクセルのマクロを使ってみよう!
エクセルをただの表計算だけに使用している方はもったいないですよ。マクロを使うと使い勝手がものすごく広がります。ここではマクロの使い方をご紹介しようと思います。
1.準備
・「Visual Basic」を追加します。
ツールバー上のどこでもいいので右クリックをします。
ショートカットメニューが開きますので「Visual Basic」を選択します。
2.マクロの作成
・ファイルを開くマクロの作成
「●」が描かれている「マクロの記録」ボタンをクリックします。
ダイアログボックスが開かれるので「マクロ名」に「ファイルを開く用」というマクロ名を入力します。
「説明」にどんなマクロを作成するのか説明を記入します。
「OK」ボタンを押します。
「記録の終了」ボタンが表示されます。
3.マクロの自動記録
・ファイルを開く作業の内容をマクロに自動記録する。
・適当なファイルを開きます。
・「記録終了」ボタンを押下します。
(「ツール」→「マクロ(の記録)」→「記録終了」でも同様の処理です。)
※ここで「記録終了」をしないと、それ以降の作業全てマクロに記録されてしまいますので注意してください。
4.マクロの実行
・先ほどマクロを記録するために開いたファイルを閉じます。
・マクロの実行ボタンを押下します。
(「ツール」→「マクロ」→「マクロ」でも同様の処理です。)
・マクロ名「ファイルを開く用」を選択したら、「実行」ボタンを押下します。
・マクロが実行されてファイルが開かれることを確認しましょう。
マクロでフリガナをふろう!
Excelをデータベースとして使う際には、「ふりがな」というのは重要な機能です。そして便利な機能です。フリガナの機能には「フリガナをふる」「PHONETIC関数を使ってフリガナを取得する」など色々な機能があります。
まぁ日本語入力と漢字の関係性から言っても万全ではないのが弱点なのですが・・・
さらに弱点として、フリガナはExcel上で行われた入力の読みを保持しているだけと言う事も上げられます。ということは、読み(ふりがな)の情報を持っていなければふりがなというのは画面上に表示されないということになります。
ツールからふりがなをふる際の弱点としては、CSVファイルをエクセル上にインポートして使用する場合ですが、この場合は読みの情報は保持されない状態でインポートされてきます。ですから、ふりがなのツール「メニュー[書式]→[ふりがな]→[表示/非表示]」を実行してもふりがながふられないということになります。
このような場合には「PHONETIC関数」を使ってマクロでふるようにしましょう。
【PHONETIC関数を使った、ふりがなをふるマクロ】
Sub Phonetic-Furigana()
Selection.SetPhonetic
Selection.Phonetics.Visible = True
End Sub
上記のようなマクロを作成して、フリガナをふりたいセルで実行するようにするとふりがなを取得することができます。
エクセルの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関数とは違うということが分かりますよね。
| Home |


