• ベストアンサー

VBAの将来性について

Wendy02の回答

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

こんにちは。 #1の回答者です。 >Office 2008 for MacではVBAがサポートされていなかったのですね。 >知りませんでしたので、勉強になりました。 Mac の次バージョンでは、復活します。ユーザーからクレームがついたからです。Mac BU(Macintosh Business Unit)自体にマクロが使えないわけではないのですが、下位バージョンとの互換性がないのです。顧客からのクレームが多かったそうですから、それが元で、Win版 Office のVBAをなくす計画も頓挫したのではないか、と思っています。ただ、VBAの基本的な資料(VB6を含む)が減ったり絶版になってきている以上は、衰退するのは目に見えています。もはや新しいユーザー側の発展性はないように思っています。かといって、そんなに乗り換えは容易ではありません。似ていて非なるものです。 ただ、Excelについては、旧版の遺産(俗にExcelレガシー)もあるでしょうから、それを捨てるようなことはしないでしょう。しかし、その時に、Microsoft Excel などが、他の製品に切り替えられる可能性はないとは言えません。 >VBAの機能が減らされているという記事を読んだ記憶 ExcelやAccess では、Excel 2007 では、記録マクロではおかしなコマンドが出てきます。 ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" Excel 2003 以下では、Excel4Macroコマンドは、グラフだけでした。 Word 2007 では、WordBasic.EquationEdit(これ自体は新しく組み込まれた機能) というコマンドですが、これは、両方とも、その呼び出し方法は古いコマンドだと思います。 他のPowerPoint には、Office 2003 から、今まで、Auto_Open などで使っていた設定を、Class モジュールに使わされることが出てきています。それは、ユーザー層の浅いところから手をつけるのではないかと思うのです。ただし、Outlook は、いろんな関係で、ほとんど変えないようです。 また、Office のExcelの全ユーザー率対するVBA のユーザー率は、一体どのぐらいでしょうか?ある程度の使いこなしが出来なければ、VBAユーザーとは言えませんから、そのようなユーザーは10%にも満たないと思うのです。パワーユーザーは、言語が変わっても追従していくでしょうけれども、ほとんどの人たちは切り捨てになるはずです。

rock123
質問者

お礼

ご回答ありがとうございます。 >Mac の次バージョンでは、復活します。ユーザーからクレームがついたからです。 やはりユーザーにとってVBAは大事な機能ですもんね。 参考になりました。 >ただ、VBAの基本的な資料(VB6を含む)が減ったり絶版になってきている以上は、衰退するのは目に見えています。 MSとしても積極的にサポートするつもりがないのかもしれませんね。 >かといって、そんなに乗り換えは容易ではありません。似ていて非なるものです。 こちらはVSTOのお話でしょうか? 私も実際にプログラムしながら調査していますが、 なかなか難しく感じております。 >ExcelやAccess では、Excel 2007 では、記録マクロではおかしなコマンドが出てきます。 新しいコマンドが用意されていないということでしょうか? >パワーユーザーは、言語が変わっても追従していくでしょうけれども、ほとんどの人たちは切り捨てになるはずです。 新しく学ぶのであればVSTOのほうが良さそうですね。 大変参考になりました。

関連するQ&A

  • Office2007のVBAのDLLファイル?

    全社的にOffice2000(又は97)からOffice2007に移行する作業中です。 NotesデータベースからExcelデザインフォーマット使用して印刷できる市販のソフトを導入していますが、Office2007環境では、実行する際、以下のエラーが出ます。 「このファイルのVBAプロジェクトを開くには、現在インストールされていないコンポーネントが必要です。詳細については、「Microsoft Office on-lineでVBAコンバータと検索して下さい」と小窓が開きます。 小窓を閉じると、もう1つ小窓が開き、 「このブックにある、VBA プロジェクト, ActiveX コントロール, およびその他のプログラミング関連の機能は失われています。」と表示されます。 類似質問をこの相談箱で見つけました。 Excel2003と2007の違い? http://questionbox.jp.msn.com/qa2776712.html 上記では『マイクロソフトに連絡し、VBAのDLLファイル(Hot Fix版)を入手すれば直りました。(無料)』と回答がされていますが、詳細がわからず困っています。 最終的には有料サポートに聞くしかないのかも知れませんが、上記DLLファイル はどのようなものなのでしょうか?どこかで手に入りませんでしょうか? よろしくお願いいたします。

  • VBとVBAの違い

    VBA→マイクロソフトオフィスを動かすもの VB→ウィンドウズを動かすのも VBでエクセルなどは操作できるけどVBAでOSは動かせない。 と言う認識であっていますか? よろしくお願いします。

  • エクセル2002に追加でVBAヘルプをインストールしたい

    VBAヘルプを使うために、エクセル2002に追加でVBAヘルプをインストールしたいです。 「プログラムの追加と削除→Microsoft Office XP Professional 変更→機能の追加/削除→Office共有機能→Visual Basic for Applications→Visual Basic ヘルプ」 のような感じで進んでいきますが、最後にCD-ROMを挿入して下さいという画面にたどり着きます。 しかし、パソコンには購入時にすでにエクセルがインストールされていてOfficeやEXCEL単体のCDがありません。CDとしてあるのはドライバーCDとリカバリーCD(4枚)しかなく、一応CD-ROMを挿入して下さいという画面の時に読み込んでみましたが読めません。 このような状態だと追加インストールはできないのでしょうか。もしできるとすればどうすればよいのでしょうか。

  • .NET Frameworkって一体何?

     近年、.NET Frameworkという言葉が流行っていますが、これは一体何なのでしょうか?  従来のようにWin32APIやMFCを使ったアプリケーションとは、かなり質が異なるもののように思われます。  .NET Frameworkに対応したアプリケーション開発ができると、どのような利点が生まれるのでしょうか?  また、次期WindowsといわれるLonghornでは、.NET Frameworkが非常に重要視されているように思います。 そして、こうした時代の流れを察するに、Win32APIやMFCのみでのアプリケーション開発をしてきた私も、.NET Frameworkとは一体何かを知らなければいけないと思うようになりました。  私はまだ何も確証は持てないのですが、.NET Frameworkはコンポーネント技術と何かしら関係があるように思います。しかし、そのような気がするだけで、何がどうなって、.NET Frameworkが構成されているのかまったくわかりません。.NET Frameworkがあると、将来どのようなことが実現可能になるのですか?

  • MS-ACCESSでDAOとODAの違いは?

    違いが良くわかりません。下記はあるHPで見かけた説明なのですが、自分の環境にはどちらがいいのか決めかねています。 皆さんはどうされていますか? >>>>>>>>>>>>>>>>>>>>>> ADO ってのは、ActiveX Database Object の頭文字で、"ActiveX" が示すとおり、OLE を介してデータベースにアクセスする標準インターフェースのことのようです。詳しくはマイクロソフトなり関連雑誌になり当たってください。  DAO ってのは、Data Access Object の頭文字で、Jet エンジンにアクセスするときに使うインターフェースです。扱いが簡単なので長く使われています。 ADO ってのは、ActiveX Database Object の頭文字で、"ActiveX" が示すとおり、OLE を介してデータベースにアクセスする標準インターフェースのことのようです。詳しくはマイクロソフトなり関連雑誌になり当たってください。  DAO ってのは、Data Access Object の頭文字で、Jet エンジンにアクセスするときに使うインターフェースです。扱いが簡単なので長く使われています。

  • .NETとActiveXの関係

    c++からブラウザ操作を行うプログラムを作成しています。 その際、.NET版 と ActiveX版を作りましょうという話になったのですが、 .NET と ActiveX の関係がわからず、教えて頂きたいです。 ActiveXは、 ネット関連のコンポーネントや技術と捉えています。 例えば、 WebBrowser コントロール (SHDocVw.dll)も ActiveXに属するという認識です。 対して、.NETは、 端的に言えばマイクロソフトが開発したアプリケーション開発、実行環境とのことですが、 WebBrowser コントロール (SHDocVw.dll)と同じことをしようと思ったら、 System.Windows.Forms.WebBrowser を使ったり、 SHDocVw.dll をimport することになるとおもいます (後者は工夫が必要そうですが) なので、 .NET は、ActiveXを包含しているという風に認識していたのです。 ActiveX コントロールは、.NETのControlクラスを継承しているはずがないので、 Windowsのポインタ(EnvDTE::Windows)ではなく IEオブジェクト用のポインタ( IShellWindowsPtr、 IWebBrowser2Ptr)を使う必要があるものの、 この認識だと、 「.NET版 を作成したら ActiveX版を作っているのと同じ」となので 冒頭の「.NET版 と ActiveX版を作りましょう」と矛盾し、 .NET が ActiveX を包含しているというわけではない?? .NET と ActiveX の関係ってどういう関係?? となり、正しい認識を教えて頂きたいのです。 .

  • VBA…苦しんでます

    VBAを勉強するようになったころから、常々感じていることなのですが、VBA講座を開設されている方々や市販されている"指南書"を書かれているライターさん達は、どのように知識を得られたのでしょうか? もちろん、プロの方達なので、過去からの知識の蓄積はあるでしょうが、文法一つ、あるいは構文一つとっても、VBAなどのプログラムの場合一字一句間違えたら動きませんよね? (それで苦労してるのですが・・・) ヘルプは決して使い勝手はよくない上、詳細な使い方が載っているとは思えないですし。 たとえばCPU会社はどの数値がどのような処理に対応するかという表、いわゆる「インストラクションセット」というものが公開され、それに基づき、アプリケーションが開発されてるとのこと・・・。 マイクロソフトに聞いても"当社では書籍はありません"との事・・・。 開発会社が"説明書"を公開していないのなら、どうやって使い方などがわかるのでしょうか?どんなものでも、作成者のみが使うものではない以上、"取扱説明書"が無い限り、使えないと思うのですが・・・。 ものすごく引っかかっているのです。 ぜひ教えてください!

  • XPEmbeddedによるWMI利用について

    WMIを利用したソフトをVBで作っていますが、XPEmbeddedにて実行すると 「ActiveXコンポーネントを作成できませんでした」 ( ActiveX component Can't create object) とエラーがでます。 //////エラー箇所/////  Set Locator = New WbemScripting.SWbemLocator ・・・VB6で開発した場合  Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator") ・・・VBSで実行した場合 wbemtest.exeでWMIテスターによる各種情報取得はできるのは確認しました。 XPEmbeddedでWMIを利用する際は、他に何かしなければいけないのでしょうか? 対処法があれば教えて頂ければ幸いです。

  • C#とVB.net

    Frameworkの開発は C#とVB.netのシェアはどちらが高いのでしょうか? 今までのOffice(2003まで)にはマクロ言語としてVBAがありましたが 次期Office(Office12)にはC#が採用されたりするのでしょうか? その辺りについて、知っておられたり または掲載しているサイト等がありましたら 教えてください。

  • ExcelでWithEventsが記述できない

    クラスモジュールに下記のように記述すると、赤く表示されエラー状態になります。 Dim WithEvents text as string WithEvents を削除するとエラーが解消されます。WithEventsについて色々検索しましたが 原因が分かりません。 何か参照設定等が必要なのでしょうか。ご存じの方教えてください。 ちなみに、バージョンはExcel2003 で、参照可能なライブラリは現在つぎのとおりです。 Visual Basic For Applications Microsoft Excel 11.0 Object Library OLE Automation Microsoft Office 11.0 Object Library Microsoft Forms 2.0 Object Library Microsoft ActiveX Data Objects 2.8 Library Microsoft Visual Basic for Applications Extensibility 5.3