• ベストアンサー

難し過ぎるエクセルVBAを何故簡単にできないのか?

 エクセルを始めて2年位になりますが、ようやく簡単なマクロを作ったりできるようになりました。  もっと便利な自動化手順をマスターするにはVBAを勉強する必要があります。  少しばかり参考書を読みましたが、英語の記述が非常に分かりにくく、大変奥の深いものと思います。  複雑な条件(条件分岐等)処理をするにはマクロだけではできませんが、VBAはプロシージャ、コード、モジュール、ステートメント等、聞き慣れない用語が多く、あまりにもレベルが高すぎて続きそうもないなぁという気がしています。  万人が理解でき、使いこなせる代物とは思えません。正直、これをマスターされている方はどのように勉強されたのか知りたいほどです。何も知らない素人が独学でマスターできるようには思えません。  私の理想として何で、英語でなく日本語で記述していないのかと腹が立ちます。  MSエクセルも都度、バージョンアップがされていますが、この辺の内容は全然、分かりやすくはなっていないと強く思います。  何故、もっと簡単に、日本語でも操作できるようにはならないものかと怒りを覚えます。  プログラムの構成上、無理なんでしょうか?難しいプロシージャやコード名を覚えなくても、単純なマクロのように操作を記録し、その操作を忠実に実行再現できるようになっておればどんなに『便利なのになぁ』と思います。これで誰でも使えるとマイクロソフトは思っているのでしょうか?  私としては英語記述を入力しなくても、日本語の操作目次があって、この操作したら日本語で解説されるまた、日本語コマンドでコード入力ができるようにして欲しいのです。MSにはそんな気がないのですかね。多くの日本のエクセルユーザーそんな思いは持っていないのでしょうか? 

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

私は、VBAを記録マクロから始めて、今2年とちょっとになります。 その前に、本格的にプログラミングを学んだ経験は一度もありません。プログラムなどはとうてい、私などには、できないと諦めてはいたものの、たまたま、困らない程度に身についたという状態です。 VBAって、まず、ベースになっているのは、英語で、英語そのもののような気がします。それも、Microsoft社の独特の言い回しのような感じですね。だからといって、英語ネイティブの人も、できる人はずば抜けていますが、一般的には、日本人と変わらないか、それよりも劣る人も多いようです。しかし、VBAは、世界で2バイト文字を扱う部分は除いて、ほとんど共通ですからね。 でも、やはり、VBAもプログラム言語の1つであり、別の世界の体系化された言語だということです。英語のネイティブに日本語で話しかけて、誰にでも通じるわけではないと同じように、やはり、意思を伝えるために、それなりに、そちらの単語や文法を覚えなくてはならないわけで、それをマスターすることは、誰にでも出来ることではない、ということは認識しなければならないのでは?と思います。 それと、VBAは、Excelや他のアプリケーションの一般操作とは、まったく別の、一般操作とは共有する部分があっても、違った種類のプログラム/ソフトウェアだと思って、まったく別の気持ちで対処しなければならない、と思います。 今、きちんとして体系化された学習参考書も、また少ないように感じます。その点で、先を急ぐあまりに、Excel VBAのサンプル・コード集をまる写して、それで凌いでいたり、自分のされたいことを優先して、基礎的なことをおろそかにしたりしている方を見受けます。やっぱり、きちんとした学習書で、順序よく「コツコツと」ではないでしょうか?

superfighter823
質問者

お礼

ご返答有難うございました。Wendyさんの言われるように、  >先を急ぐあまりに、Excel VBAのサンプル・コード集をまる写して、それで凌いでいたり、自分のされたいことを優先して、基礎的なことをおろそかにしたりしている方も多いそうですが、  中々、理解できないから、そういう一時しのぎになるのではないでしょうか?基本はともかく、仕事その他で一刻も早く処理できるようにしたい、時間がないのでとにかく形だけは作る必要がある、だから即使える手立て、手法を見つけるとしたらサンプルコードのコピーに走らざるを得ないのではないでしょうか?  いくらMSが立派なソフトを提供しても、万人が受け入れられる、皆が使えるものでないと意味がないと思うのですが。  使いたいけど難しくてどうにもならない、覚えたり努力しなければならないことは分かっている、でも各々レベル、スキルが違うと思うのです。  やる気のある人はそれでも覚えようとするでしょう。でも私のように年を取ってから始めた者には、荷が重過ぎます。他にもすることはあります。それを勉強するための時間的な余裕がない、根気が続かないから  たとえ、基本ができていなくても、ある程度入っていけるように難易度を下げる、簡素化する、日本語でも表記入力できる、解説がある、ヘルプを見なくてもある程度やって行ける様にしてもらいたいと言うのが私のMSへの希望なんです。

その他の回答 (7)

回答No.8

お怒りごもっともだと思います。私もVBAは遅々として進みません。覚えたと思ったら少し使わないとすぐ忘れてしまいます。 ただ、こういったことはエクセルを問わず世の中の多くのことに当てはまらないでしょうか。「高機能のものを簡単に操作」ということにはある程度の限界があるのでしょう。 例えば、携帯電話の全機能を私は使いこなせてませんし、マスターしようとも思いません。きっと思いがけず便利な機能があるはずですが・・・。 PCにしても、アプリは使うが、自分でプログラムをマスターしようとまでは思いません。きっと素晴らしい可能性を知らずにいるのでしょうが、そこまで時間をかける気にもなりません。 精神論ですが、「便利な機能」というのは、努力してマスターした人へのボーナスだと考えてます。やればやっただけその人が得をする、という感じの。 もちろん、簡単に操作できるための工夫と努力はメーカーに続けてもらいたいし、それができたところはユーザーから支持される強みになるのは言うまでもありませんが。

superfighter823
質問者

お礼

ご返答有難うございます。 今日、二軒の本屋に立ち寄り、VBAの参考書を見ていましたが、どれを見ても英語の記述が延々と書かれていました。  買おうかなぁ?と思いましたが、買いませんでした。立ち読みしていたら段々、腹が立ってきて『無理だ』という気がしました。  難しいコードの種類、ステートメントやモジュール、プロシージャを覚えたら素晴らしいなあと考えましたが、私はプログラマーやパソコンを専門にしている仕事をしていないので、あえて、時間を掛けて覚えて、それが今の自分の仕事にどう生かせるのか?  確かに吸収すれば能力アップに違いないのですが、時間がない、根気が持たないので断念しました。  『簡単なマクロを作ればいい』『無理してストレスを溜めるのなら止めようと』あくまでパソコンは仕事の補助なので『そこまで深く入り込んでどうなる?』と踏ん切りがつきました。  再度、必要になるのなら考えようと思います。もっとソフトの側で簡単にできるような方法に改善されるまで、待とうと思います。  1969gensukeさんも頑張って下さい。私は諦めます。無理です。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.7

私も独学ですが、マスターできる(?それなりに使える様にはなった)ようになりました。 英語と言われますけど、いわゆる言語のしての英語というより、プログラムにおけるそれは、単に記号としてのそれなので、日本語でも英語でもたいして変わりはないと思います。単に置き換えればいいだけです。 要は慣れの問題だと思います。日本語の中にも英語そのままの単語が使われているように、使っているウチになれてしまうものだと思います。 >日本語コマンドでコード入力ができるようにして欲しいのです。MSにはそんな気がないのですかね。 日本語としての意味の通りの悪さを別にすれば、それほど難しいことではないと思うので、本当にユーザーからの強い要望があれば、MSもそうすると思いますが、私見になるかもしれませんが、多くのプログラマにとってコード入力を日本語したいとは思わないようです。(多分めんどくさい(割に対して可読性はあがらない)というのが理由) 昔、C言語でプリプロセッサを利用して、日本語でコードが記述できるような試みも一部の人達の間でありましたが結局流布しませんでした。そういうことからも、そういうニーズは少ないと思われます。

  • sokoja
  • ベストアンサー率33% (164/491)
回答No.6

全然自慢ではないですが、VBAは解説書だけたくさん持っています。いずれも数ページまでしか読んでいないような状態です(^^; まあ、むかしBASICはかじっていたので、多少がんばれば出来るという中途半端な自信がわるいのか…。いつも根性無く諦めています。 問題は、何語だろうが、どんなに難しかろうが、必要が有れば覚えるのだと思いますね。(私の場合は、無くても何とかなっている) そういえば、日本語のプログラム言語もありますが、簡単に見えますが実際は…。

参考URL:
http://kujirahand.com/himawari/
  • NNori
  • ベストアンサー率22% (377/1669)
回答No.5

日本語プログラミングという観点から書きます。 Googleで「日本語プログラム言語」とかで検索すると「なでしこ」とか「ひまわり」とかがでてきます。参照URLは「なでしこ」のコマンド一覧で、後の方にずらずらと日本語コマンドがならんでいます。 まあ、こんなことやってる人も世の中にはいるんですねぇ。 ところで、エクセルのVBAですが、関数名や変数名には日本語使えますけどやってますか?関数に日本語を使うと結構わかりやすくなりますよ。

参考URL:
http://nadesi.com/doc/cmd/list.htm
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

VBAを触り始めて2年強。(実務では1年半になります。) プログラムの基本が出来ていれば、あとはパズルの組み合わせになるので、目的に応じた関数やプロパティを使って組んでいけば、大抵のことは出来ます。 英語は「難しい」と思うからいけないと思います。 ハッキリ言って私の英語能力は中学生以下レベルですが、プログラムを組んだり読んだりするのに不自由だと思ったことはありませんよ。 >この操作したら日本語で解説されるまた コードにカーソルを置いて、F1キーでヘルプが表示されます。 適当なステートメントを選んで試して見てください。 また、ネットには初心者向けの解説も沢山あるので、検索して見てください。

superfighter823
質問者

補足

ご返答有難うございます。 私はジグゾーパズルをしていて嫌になり、『何で裏にピースの貼り付け位置番号が記載されていないのか?』と疑問を持つ者です。  パズルを組んで行く過程、『どうすれば綺麗に早く組めるか?』と言う風には考えません。  パズルは壁に飾るもの、仕上げればよいのだから、それまでの過程、どう考えるか?組み合わせを変えるとか、そういうのは重視していません。  飾るものは簡単に組めた方が良い、考えるを楽しむものですが、だから貼り付け番号を表示して欲しい、くめればそれで良し、ややこしいのが大嫌いなんです。  根気がないのかも知れません。またヘルプにしてもこちらの思う通りの答えが返って来ない、違う答えばかりだ、抽象的な回答で意味が理解できないケースがあります。それなら電話で直接聞いたほうが早い、と考えます。  エクセルも結構な価格で販売しているのだから、もっとその辺を改善してくれと言う思いで一杯です。  早くできるようにしたい→地道にコツコツ積み上げて勉強している時間がない→思うように進まない→嫌になる→挫折する、これの繰り返しです。  誰でも抵抗なく、入っていけるようにソフトが改善されるのを待つしかないようです。  マイクロソフトにはもっと『見える化』『単純明瞭化』を望みたいです。  思うように行かないので腹が立ちますが、これが現実です。回答いただき、有難うございました。  

noname#112806
noname#112806
回答No.2

確かにVBAは初心者の方にはとっつきにくい部分があります。 私は、Excelに関してはほとんどVBAを使ったことはないのですが、Accessを使う際に基本部分はマスターしました。 もちろんまったくの素人の状態からヘルプと格闘しながら少しずつ覚えていきました。 私も英語ではなく日本語で記述できれば簡単なのにと思う時もありましたが、実際はどちらでも大して変わらないのではないかと思います。 例えば、関数が日本語だったらExcelはもっと使いやすくなると思いますか? 最初のとっつきやすさは日本語のほうが上かもしれませんが、覚えてしまえばどちらでも一緒です。 とにかくマスターしたければコツコツ努力するしかないと思います。 幸いExcelの場合は、マクロの記録機能がありますので記録したマクロを見ながら少しずつ覚えていってはいかがでしょうか? 覚えるコツはヒマがあればヘルプを見ることです! ちなみに、プログラミング言語を日本語などの英語以外の言語にした場合、アプリケーションの安定性を保つのが困難になると思いますよ。Windowsも英語版より日本語版のほうが不安定だと聞いたことがあります。

superfighter823
質問者

お礼

 ご回答有難うございます。VBAは本当に分かりにくい内容でイライラします。  VBA他にも関数も英語表記となっていますが、私は日本語表記を歓迎します。  SUM:合計関数、VLOOKUP:列検索関数、AVG:平均関数、IF:仮定条件関数とうこんな風になっていた方が分かり易いと思います。  VBAのコードもこのようにして欲しいのが希望です。英語は嫌いではありませんが、日本語方が断然分かり易いと思います。  ある一定のレベルの人を対象にした内容に思えて初心者が戸惑うのもこの英語表記に原因があると思います。何でMSはこれに気が付いてくれないのだろう?知っていながら避けているのか?安定性が崩れるのが怖いのか?とさえ思います。  ヘルプもこちらのやりたいことが、検索できない、知りたいのはそれではない、これが聞きたいんだということがたくさんあります。でも上手く行きません。

  • s1979
  • ベストアンサー率0% (0/2)
回答No.1

 こんちには。 私もExcelを始めて5年近くなります、VBAも最近始めたのですが特に日本語であって欲しいと思ったことはありません。新しいことを覚えるのは、RPG(ゲーム)で魔法を覚える感覚に似ています。ですので、VBAの厚さ10cm近くある参考書を見ていても特に苦ではないですね。楽しく覚える!!のが一番かと思います。  まったく参考にならないと思いますが…。

superfighter823
質問者

補足

私はRPGゲームは苦手な方で一切、していません。チマチマしたゲームは大嫌いです。白黒はっきりしてるゲームの方がいいですね。ステージクリア型のアクションゲームとか。  時間の長引くヤツは嫌なんです。 分かりやすいのが一番です。

関連するQ&A

  • 中国語版のEXCEL マクロ(VBA)

    中国語版のEXCELでマクロを学習しています。 VBAのコードやプロシージャーの入力で数字や式は問題ないのですけれど、日本語を入力すると実行しても文字化けしたりエラーが出てしまいます。 中国語版のEXCELを日本版と同じように使うための何か環境設定などありますでしょうか? また中国語版でのコードの文字入力例の一覧などありましたら、どなたか教えていただけますでしょうか。 よろしくお願いいたします。

  • エクセルVBAで条件式について

    例えば、エクセルVBAでif~thenのような条件式で条件に合わなかったら、そのプロシージャ内の処理をすべてキャンセルするか、条件にあわなかったら、それ以降の下段に記述されているプロシージャ内のVBAをキャンセルする方法はありませんか?

  • エクセル VBAについて困っていることがあり質問をします。

    エクセル VBAについて困っていることがあり質問をします。 日本語Windows及び日本語エクセルで作成したマクロを英語オンリーのWindows及びエクセルで使用すると下記のエラーで停止してしまします。 Microsoft Visual Basic Compile error on hidden module: sheet1 どうしても仕事で日本語Windowsで作成したマクロを英語オンリーのWindowsで実行させないと行けません。どうか知っている方がいましたら教えて下さい。 情報: (1)シート1にもマクロ(コントロールボックス)から入れたマクロが入っています。 (2)マクロには、日本語の表記があります。

  • Excel2007のVBAについて

    Excel2007のVBAについて Excel2007以前では「マクロの記録」を実行して罫線や図形の描写を行って、「記録終了」を行うと作業していたコードが記述され、それを加工したりして使っていましたが、Excel2007で同じように行ってもコードが記述されてませんでした。 セルの操作等はコードが記述されていました。 どこか、私の操作方法が間違っているのでしょうか。また2003のようにコードを記述させる方法が別途あるのでしょうか、よろしくお願いします。 関係ないとおもいますが、 「Excelのオプション」で「開発タブをリボンに表示する」はチェック入れてあります。 「マクロの設定」では「すべてのマクロを有効にする」にチェックしています。

  • エクセルVBA

    エクセルVBAのコードについて質問です。エクセル初心者です。 Windows10で32bit版のエクセル2010を使っています。 1.エクセルのマクロは32bit版でも64bit版にも対応できるようコードを組んでいるのですが、 32bitで動いているのか64bitで動いているのかどのように確かめたらよいでしょうか? あるマクロの途中に #If VBA7 And win64 Then MsgBox ” 64bit ” #Else またはIf VBA7 And win32 MsgBox ”32bit” #End If を組み込むと、If分の終わりには If分の最後に#EndIfが必要です、と表示されて(EndIfを書いているのに) エラーになります。 2.エクセルマクロをIEと連携させて使っています。 IEを操作させている途中でエクセルのメッセージBoxを最前面表示させるには どうしたらよいでしょうか? IEで特定の操作をしたら、エクセルが最前面に出て、OKボタン付きのメッセージBoxが表示され、OKボタンを押すとIEを操作する という動作をコードに書いています。 コードを書いた直後は、IE上での特定の操作のあとメッセージBoxが適切に最前面表示されますが、 一度保存し閉じてファイルを開き直しマクロを実行すると、メッセージBoxは最前面に出てくれません。 検討したコードは 1. SetForegroundWindow 2.VBA AppActivate. Microsoft Excel. Capture 3.AppActivate Microsoft です。いずれのコードを書いた場合も、保存まではうまくメッセージBoxに回答できるが 保存しファイルを開き直してマクロを実行するとメッセージBoxはIEの後ろに隠れたままであり、エクセルを選択しないと最前面表示されません。 しかし一応最前面表示されることもあることから、マクロを一度実行するごとにエクセル内のデータが変わる可能性も考えられす。

  • エクセルVBAとは

    先日、富士通のテキストを使いエクセルVBAの講習を受けました。 講習ではエクセルの複数の操作は、VBAの方式で処理すると1つの 操作で簡単に結果が出るというものでした。 ここでお聞きしたいのは、1)このVBAの処理は操作が簡単になる からという理由でしょうか? VBA処理の大きな目的が解りません。 2)又、このVisual Basicとは日本語で何と訳すので しょうか? 宜しく御願いします。

  • EXCELのマクロとVBAの連続実行について

    EXCELを鋭意勉強中です。 それぞれ独立したマクロとVBAのコードがあるとして これらを組み合わせ自在に連続して実行することは可能でしょうか? マクロの連続実行は Call マクロ() で出来ることは判ったのですが ここにVBAが組み合わさると、どう記述してよいのかさっぱり判りません。 わかる方、よろしくご指導をお願い致します。

  • エクセルVBAの記述について教えて下さい。

    エクセルVBAの記述について教えて下さい。 セルA1,B1,C1,D1,E1すべてにデータが入力されているかどうかを調べる記述を教えて下さい。 ちなみに・・・ 入力が不足しているときはmsgで『入力が不足しています』のダイアログ。 すべて入力されているときはmsgで『入力OK』のあとにCallで別のマクロを呼び込む ような記述が知りたいです。 どなたかご教授お願い致します。 【環境】 OS:Windows7 Excel:2003

  • エクセルとVBAの関係記述言語

    エクセルとVBAの関係について教えて下さい。マクロを組むとその行程がVBAで記述されるということは知っています。ですがマクロ=VBAなのでしょうか?そもそもこれはマイクロソフトの企業秘密かもしれませんが、エクセルを作成した記述言語は何なのでしょう?VBAでない事は確からしいので、VBAはエクセル本体とマクロというプログラミングの仲立ちの様なものでしょうか。

  • Excelの開発言語ってなんですか?

    この間、Excelのマクロについて、質問したときに、VBAのコードをわざわざ作って記述してくださった方がいて、VBAで検索いろいろしていったら、そこで改めて疑問をもったのですが、Excelの開発言語ってなんですか?VBAなんですか? 関連しそうなサイトを一通り見てみたんですが、検索の仕方が悪いのか、意味がよくわからなかったので教えてください。 もともと、VBAを、Excelの開発言語で使ってたんだけど、便利がいいので、マクロに代用するようにした、というような形に書いてあるみたいに読めるんですが、読解力なさすぎでしょうか? 私のイメージだと、VBAは、マクロを記述しておくための言語なんですよね(-_-;) 調べ始めたばかりなので、ぜったいどっかに大幅な勘違いがあるとおもうんですが、わかる方にはあたりまえの質問なのかもしれませんが、VBAのコードを書いていただいたことで、Excelなどのアプリケーションソフト自体がどのように開発されているのか、大変興味を持ちました。 不正コピー防止などの理由で、開発言語は公表されていない、などもありましたら、そういうのも、ぜひ、教えてください。 よろしくお願いいたします。

専門家に質問してみよう