[[20080213174208]] 『マクロとVBAについて』(なお) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロとVBAについて』(なお)

お伺いしたいのですが、エクセルの関数が多少できるようになってきました。
そこでマクロやVBAを覚えたいのですが、違いがよくわからず、
どちらから先に覚えたほうがよいでしょうか?
ボタン一つで印刷できるような一連の操作を行い、マクロの記録⇒終了
はやってみました。単純ですが、印刷したいシートや複数のシートのある部分を
一括で印刷をするなどやりたいと思っています。
どちからやったほうがとっつき安いでしょうか?


 以下は私見です。
【マクロとVBA】
http://miyahorinn.fc2web.com/vbabegin/s_01_02.html
 
(みやほりん)(-_∂)b

 こんなスレを立てたこともあります。
 
[[20050601231847]]『[談]マクロとVBA』(純丸)
 
(純丸)(o^-')b


「コンピュータ言語においてマクロとは、プログラム中の文字列を、あらかじめ定義された規則に従って置換す

ること。マクロを展開するプロセッサ(処理系)をマクロプロセッサという。転じて、アプリケーションソフト

ウェア上の作業を自動化する機能やプログラム言語(マクロ言語)のこともマクロと呼ぶ。」

ウィキペディア(Wikipedia)より、

私にはこれがピンときます。COBOLのCOPY文とよく似た機能がマクロだと思っていました。

ですから、VBA---->マクロ がちょっと理解に苦しみました。

ただ、今からVBAを学ぶことが本当に正しい方向なのでしょうかねえ??

これは、意見の分かれるところだと思います!!

それでもプログラム言語の最初の一歩として、VBAは、すぐに手を出せるから

良いのかもねえ・・・。

ichinose


 「プログラム中の文字列を、あらかじめ定義された規則に従って置換すること。」
なるほど。
うちの会社の汎用機のプログラムにはコマンドをテキスト記録する機能があります。
どの操作で不具合がおきたのか、再現する為にある機能だそうですが、
そのような記録していくだけというも、マクロ?
(そう読めたんですが、違いますかね?)というのも、
「COBOLのCOPY文」っていうのが、どういうことなのか、知らないからなんですが。
 
>VBAを学ぶことが本当に正しい方向なのでしょうかねえ?? 
うーん、[なお]さんは「プログラミングの最先端を学ぶ」のが目的ではなくて、
「Excelを便利に使う」のが目的ですから、「VBAを覚えたい」で良いのでは。
 
それはさておき、
「ボタン一つで印刷できるような一連の操作を行い・・・」
がご相談の主旨ですので・・・
Excelが[なお]さんの望むとおりに(半)自動で動くようにする為にはExcelの
「マクロ機能」を使ってExcelに命令を出す必要があります。
念じるだけでは動いてくれませんので、Excelとコミュニケーションしなければな
りません。コミュニケーションをとる為には言語が必要です。その言語がVBAです。
 
「マクロの記録」は「あなたが行った操作をVBAコードに翻訳するとこうなります」
と言うことをしています。マクロで[なお]さんの望むとおりにExcelを動かすには、
[なお]さんのやりたいことを「VBAコードに翻訳する」=「マクロプログラミング
する」と言う表現になろうかと思います。
 
[なお]さんの言う「マクロ」は、「マクロの記録」、「VBA」は「VBAのコー
ドを自分で入力する」と言うことを表現しているのだと推測しますが、
 
>どちからやったほうがとっつき安いでしょうか? 
「どちらもやる」が私は正解だと考えます。
「マクロの記録」では(ほぼ)やったとおりのサンプルができます。
ただ、思い通りにExcelを操作する為には、「マク高フ記録」だけでは出来ないこと
が多いので、VBAコードの書き方を勉強して、サンプルに肉付け、という方向性にな
るかと思われます。
 
(みやほりん)(-_∂)b

 以下、Wickipediaより原文を抜粋

 A macro in computer science is a rule or pattern that specifies how a certain input sequence
 (often a sequence of characters) should be mapped to an output sequence (also often a
 sequence of characters) according to a defined procedure.....

 Computer scienceに於ける Macro とは、入力されたデータ(その多くが文字列データ)が
 ある一定の法則 およびパターンによる処理を、定義されたProcedureにより出力することである。
 (訳文が原文と異なる場合は原文を優先)
 (seiya)

 わたしのとらえ方は
一連のワークシート上の作業を自動的に処理する作業をマクロというように捉え
それを具体的に記述するのに使われているプログラム(言語)がEXCELの場合に
VBAという名前のものであるということです。
   言ってみれば,どちらもEXCELなどの場合は同じことを言っていますがその切り口が
異なっているだけと考えています。
   逆に言えば,他の計算表ソフト(昔のロータス123など)もマクロというものが
ありましたが,その中身のコード(プログラム)はEXCELの場合と全く異なるもの
でVBAではありませんでした。
 たまたま,EXCELの場合はVB(A)でマクロを実現しているということでしょうか。
繰り返しますが,マクロは処理そのものなどを指しているように思いますし,VBAはそこに
使われている道具(言語:プログラム)の名前というような理解でいいのではないで
しょうか。

 蛇足)
 VBAとVBについては,原則どちらも同じようなものと捉えていいと思います。
 使える用語(命令)などの範囲が異なりますがVBAには,ワークシートを処理
 出来る多数の用語(命令)が容易されて,EXCEL向けなどにに特化されています。
   根本的な違いは,Aが付くか付かないで,AはAplicationを示し,そのソフト
(EXCELなど)内でしか使えないということです。
  つまり,そのソフトが起動している世界でしか動かせないということです。
   VBは単独で動きます。

 蛇足2)

 マクロの記録で記録されたコード(記述:プログラム)もVBAで出来ています。
 従って,最初からコードを自分で書いていったものも,マクロの記録で記録
 したものも,同じものでどちらもVBA言語そのものです。違いはなにもありません。
   ただし,記録したものはあくまでも内容が作業をそのまま記載されたような
ものになってしまうため,複雑な頭の中で構築するような処理はコード上には
生まれてきません。 自分で考えた処理を実現するなら,最終的には,自分の
意思でコードを直したり,書き加えたりしないと複雑なマクロ処理(VBAコード)
は実現できないとでしょう。
  ここで言う複雑なマクロとは,難しい用語・命令を使うということでなく
判断機能や,繰り返し機能などのプログラム上の機能を組み込めるということです。

(夕焼)


ほぼ雁首をそろえながらプログラムは何かを的確に言っている人はいないいない。
次元が低い低い。

      (傍観者)


 なるほど。
プログラムとは何かって言うのは私も知りませんので、相談者さんがそれを求めているなら私の出る幕はありません。
(みやほりん)

 自分に回答できるスキルがないので悔しいのでちゃちゃいれだけしか出来なかったとおもわれ
 (呆観者)

 >プログラムは何かを的確に言っている人はいないいない。

 別に,国語の試験でないので,「的確に言う言わない」はどうでもいいこと。
実際,どう体感しているか,どう理解しているかであり,言葉・文書で
どう表現するかは国語の話,別話。(ナンセンスボーイ)

 的確に表現することは必要と私は考えます。
が、
 >どちらから先に覚えたほうがよいでしょうか?
 >どちからやったほうがとっつき安いでしょうか? 
が相談の主文。
 
(みやほりん)(-_∂)b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.