この間、Excelのマクロについて、質問したときに、VBAのコードをわざわざ作って記述してくださった方がいて、VBAで検索いろいろしていったら、そこで改めて疑問をもったのですが、Excelの開発言語ってなんですか?VBAなんですか?

関連しそうなサイトを一通り見てみたんですが、検索の仕方が悪いのか、意味がよくわからなかったので教えてください。

もともと、VBAを、Excelの開発言語で使ってたんだけど、便利がいいので、マクロに代用するようにした、というような形に書いてあるみたいに読めるんですが、読解力なさすぎでしょうか?
私のイメージだと、VBAは、マクロを記述しておくための言語なんですよね(-_-;)

調べ始めたばかりなので、ぜったいどっかに大幅な勘違いがあるとおもうんですが、わかる方にはあたりまえの質問なのかもしれませんが、VBAのコードを書いていただいたことで、Excelなどのアプリケーションソフト自体がどのように開発されているのか、大変興味を持ちました。

不正コピー防止などの理由で、開発言語は公表されていない、などもありましたら、そういうのも、ぜひ、教えてください。

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Excelの開発言語ということは、Excel上で動作する言語体系ということ


でしょうか。それとも、Excelが何の言語で開発されているかということ
ですか?

Excelで動作する言語体系ですが、これはもちろんVBA(Visual Basic
for Application)です。
Excelだけでなく、WordやAccessなど主要なMS-Office製品全てに対応
しています。

Win3.1時代のExcelは、独自のマクロ言語を持っていましたが、確か
Excel95からVBAに切り替わったような記憶があります。
これは、Visual BasicがWindows開発言語の標準として、急速に普及し
たことと関係があるのではないかと、推測しています。

次にExcelが何の言語で開発されているかということですが、推測も交じり
ますが、おそらくVisual C++と思われます。初期のExcelはC+WinSDKで
開発されていましたが。

この回答への補足

回答ありがとうございます。
今回の質問の意図は、アプリケーションソフト自体の開発言語は何なんのだろう?という単純な疑問でした。

VBAと「ぶつかること」はないのかな?と思いまして。
この表現でわかりますかね(-_-;)?

Excelや、Wordもプログラミング言語を使って開発されているプログラムだっていうところまでは、理解しているんですけど、VBAもプログラミング言語ですよね?

だから、VBAをこれから勉強していく上で、きちんと開発言語も理解しておかないと、「ぶつかって」おかしなことにならないのかな?と思ったものですから。

でも、回答を拝見させていただいたかぎり、ぶつかることはなさそうですね。
安心して勉強できそうです。

補足日時:2001/07/31 20:34
    • good
    • 0

 こんにちは。



 Excelは、解かりませんが、
Windows自体は、Pascalで記述されているらしいです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Windowsの開発言語まで知ることができて、大変うれしいです。
早速Pascalで、検索してみます。

どうもありがとうございました。

お礼日時:2001/07/31 20:47

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q初心者がまず始めるプログラミング言語はなにはおすすめ?

こんにちは。
プログラムについてほぼまったくの初心者です。
シューティングゲームやファミコンの頃のようなマリオ系アクションがつくりたいです。また、就職時や特技として履歴書に書ける、役に立つプログラミング言語が学びたいです。
使っているOSはXPです。
C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。
たくさんあるプログラミング言語の中から、初心者にもわかりやすくて、また、他のプログラミング言語への勉強にもなるようなプログラミング言語はあるでしょうか?
おねがいします。

Aベストアンサー

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少ない
  ‐綺麗なプログラムを書かないと気持ち悪くなるという,良い習慣が身につく
  ‐文法が比較的単純
  ‐処理系が無料で手に入る
  ‐世界的に広く使われている
  ‐オブジェクト指向もできる

 その後で,JavaScript に進んでみてはいかがでしょうか。毛色の異なるいろいろな言語に慣れておく必要があり,将来,Java, C#, C, C++ などの言語に進むためにも。

 また,視野を広げるために Scheme, Common Lisp や ML, OCaml, Haskell, Erlang など関数言語のたぐいや,Perl や Ruby, sed, Awk などのスクリプト言語の本にも目を通されることをお勧めします(いずれも世界的に有名で,処理系が無料で手に入ります)。

 それから Java や C# などに取り組めば良いと思います。そして,C や C++ も勉強しておく必要があります。

 私自身は,仕事の都合でCOBOLとアセンブラを先に勉強し,かなり後になってC言語を勉強したので,C言語のポインタのどこが難しいのか分かりませんでした(C言語のポインタは簡単です(^^;)。ただし,アセンブラは余力があるときに限り取り組めばよいでしょう(でも,CASL関連の本には目を通しておくべき)。

> C言語というものの初歩の初歩を本で学んだんですが、とても難しく感じ、途中で挫折してしまいました。

 厳しいですね。C言語の初歩程度でへこたれているようでは「就職時や特技として履歴書に書ける、役に立つプログラミング言語」のマスターはおぼつかないでしょう。が,C言語が初心者向きでないのもまた事実です。

 私としては,初心者には Python をお奨めします:

  ‐汚いプログラムが書きにくいような文法になっており,ああも書ける,こうも書けるといった,初心者を戸惑わせる文法事項が少...続きを読む

Q EXCELのVBA,マクロでこれはどう記述するのでしょう?

先日、類似の質問をしたものですが、下記のような表を作成し、A列の型データーを検索して、参照表からVLOOKUP関数で指定列の品番を表示させています。

 先日、質問内容が抽象的で分かりにくかったので再度、質問ですが、
 関数では出来ないことが前回の質問で分かり、VBAでないとダメだと言うことなんですが、
私のしたいことは、簡単に言いますと、B列の台数セルについて、セルの値を検索して台数が200以上であつた場合、そのセルのある下段に空白行を200なら1行、300なら2行挿入するという風にしたいのです。

 これをVBAで実現するにはどのような記述が必要なのでしょうか?簡単に出来るのでしょうか?私はVBAは素人な者で、コード等は良く知りません。
 いつもやっているのは、記録マクロばかりで、定形作業で一度組んだマクロの変化する部分(日付、ファイル名)を編集、修正しかしておりません。だからいつもデバック画面と格闘しています。どなたか知っておられたらご指南、お願いします。
   A     B      C     D
1  型   台数  品番
2 検索値 250
3 検索値 100
4 検索値 200
5 検索値 150
6 検索値 350

先日、類似の質問をしたものですが、下記のような表を作成し、A列の型データーを検索して、参照表からVLOOKUP関数で指定列の品番を表示させています。

 先日、質問内容が抽象的で分かりにくかったので再度、質問ですが、
 関数では出来ないことが前回の質問で分かり、VBAでないとダメだと言うことなんですが、
私のしたいことは、簡単に言いますと、B列の台数セルについて、セルの値を検索して台数が200以上であつた場合、そのセルのある下段に空白行を200なら1行、300なら2行挿入するという風...続きを読む

Aベストアンサー

こんばんは。
こんな風にしたらいかがかな?
設定のところだけ、書き換えればよいです。

Sub testInsert()
  Dim i As Long
  Dim j As Long
  Dim rng As Range
  With ActiveSheet
  '----------------------------
  '設定
  Const FirstRow As Integer = 2 '最初の行・タイトル行あり
  Set rng = .Range("B" & FirstRow, .Range("B65536").End(xlUp))
  '----------------------------
   Application.ScreenUpdating = False
   For i = rng.Rows.Count To 1 Step -1
     With rng.Cells(i, 1)
      '数値のチェック
      If VarType(.Value) = vbDouble Then
        j = Application.Min(Int(.Value / 100) - 1, 2)
        If j > 0 Then
         .Offset(1).Resize(j).EntireRow.Insert
        End If
      End If
     End With
   Next i
   Application.ScreenUpdating = False
  End With
  Set rng = Nothing
End Sub

こんばんは。
こんな風にしたらいかがかな?
設定のところだけ、書き換えればよいです。

Sub testInsert()
  Dim i As Long
  Dim j As Long
  Dim rng As Range
  With ActiveSheet
  '----------------------------
  '設定
  Const FirstRow As Integer = 2 '最初の行・タイトル行あり
  Set rng = .Range("B" & FirstRow, .Range("B65536").End(xlUp))
  '----------------------------
   Application.ScreenUpdating = False
   For i = rng.Rows.Count To 1 Step -1
  ...続きを読む

Q初心者が選ぶべきプログラミング言語は?

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています
後々は勉強の具合により目的も変えてゆきたいと思っていますが・・・

今現在の理解では・・・
基礎はCで、ビジネスではJavaで、WebはPHP、ぐらいしか解りません。どれもプログラミングの共通点を
有していて勉強すればある程度は共通知識を身につけられることも言われてはいますが
言語選びを間違えたくないなと思いまして。

Cをすこし勉強したときいつwindowsアプリのようなウィンドウをつくれるかももわかりませんでした。
現在自分ができることといったらExcelでVBAを組んで(かなり低レベルですが)自動化させる程度です。


ビジネスの世界、SEなどのプログラマーの世界で今注目されている言語や花形言語など、現在業界のオーバービューも知りたいです、詳しい方どうぞよろしくお願いします。

※個人的にはRubyが面白そうで、いろんなことができそうだなと思っています。

初心者が選ぶべきプログラミング言語は?

プログラミングの勉強を始めようと思っている超初心者です。この手の質問はこちらでもかなり検索すればヒットしますが、いまいち良くわからないのであえて質問します。

私のような初心者がプログラミングをはじめるときどの言語を選んだらよいでしょうか?
重視することは「将来性があって」「有用性のある」「標準的な」言語です。
言語選びにはしたいことの明確なビジョンがないといけないと言われますよね
私の目的はwindowsのフリーソフトのようなツールを作りたい...続きを読む

Aベストアンサー

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語をマスターしたからといって、WindowsやiPhoneで思い通りにソフト開発ができるわけじゃないです。

なので、最初は「どのプラットフォームの開発を身につけたいか」を決めた方が適切なアドバイスがもらえると思います。

Windows?iPhone?Webアプリ? SaaS系?などなど

プラットフォームが決まれば、今習得すべき言語は(本人の希望によらず)勝手に決まってしまいます。AndoroidならJavaとか。

「将来性」はともかく、Windowsアプリを作りたいのであれば、.NET Framework で VBでもC#でもお好きな方を使って開発するのが一般的ですが、それでもハード性能を100%使い切るばりばりの3Dゲームソフトを作りたいなら Win32API & C++ & DirectXでどうぞ、という感じです。その前にWindowsで3Dゲームを作ること自体が今となっては疑問です。XBOX + XNAの方がいいかもしれません。
将来性をもってゲームを作りたいなら、AndroidやiPhone で OpenGLアプリを勧めたいですね。

という感じで、言語を選ぶこととプラットフォームを選ぶことは別で、多くの場合プラットフォームが決まれば最適な言語をマスターするしかないということです。

私は10数年Windows用のクライアントソフトを開発していますが・・・

>重視することは「将来性があって」「有用性のある」「標準的な」言語です。



>私の目的はwindowsのフリーソフトのようなツールを作りたいことを第一目標にしています

が、合致しません。

WindowsというクライアントPC 用のアプリ開発自体が、「将来性がなく」「標準的でない」方向にあると思います。エンジニアの求人情報を調べればわかります。


それから、身につけたい技術の選び方として、「言語」はあまり意味がないです。
C言語を...続きを読む

QExcelのマクロで最下行を選択して「一行挿入する」マクロの記述を

Excelのマクロで最下行を選択して「一行挿入する」マクロの記述を教えてください。

ちなみにA列の一番下の行を選択し、その上に一行入れたいのです。

よろしくお願いします。

Aベストアンサー

こんちは

Range("A65536").End(xlUp).EntireRow.Insert

Q僕は高校生なんですがプログラミング言語を将来のために学びたいと思っています。まだ初心者なので調べた結

僕は高校生なんですがプログラミング言語を将来のために学びたいと思っています。まだ初心者なので調べた結果RubyかPythonのどちらかにしようと思うのですがどちらがいいでしょうか?
なるべく多くの意見を参考にしたいです。

Aベストアンサー

入門書とか入門サイトとか少し読んでみて、直感的に「なんとかなりそう」と思った方。
悩んでないで、直感を信じてとにかく始めることです。


プログラムは大きく
・やろうとしていることをどうやって実現するか?
・それをプログラミング言語でどうやって記述するか?
の2つの要素があります。

前者の「やり方」は、言語によろ違いが少ないので、一度身に付くと、言語が変わっても応用が効きます。
後者の「書き方」は(多少似たところはあるものの)言語毎に違うので、「やり方」程は応用が効きません。

「最初の言語」はどうしても「やり方」「書き方」の両方を学習しなければなりません。
ですが、次からは「書き方」中心の学習になるので、「最初の言語」ほどは苦労しないはずです。


なので、とにかく早く始めて、「やり方」を身に付けていきましょう。
直感がはずれて、「この言語は無理」と感じたとしても、「次の言語」へは1から始めるよりははるかに楽になっているはずです。

QExcel マクロ VBA 2つのsheetからセルをコピーして集計シートにコピペする方法 マクロ

Excel マクロ VBA 2つのsheetからセルをコピーして集計シートにコピペする方法

マクロでsheet1のB2:C2を集計シートのA2:B2へコピーし、sheet1のB:C列の最終行を集計シートのC2:D2へコピペ
sheet1のD2:E2を集計シートのA3:B3、sheet1のD:E列の最終行を集計シートのC3:D3へコピペ
↑これをsheet1の1番右の列の2行目が空欄になるまで繰り返す。

次にsheet2のB2:C2を集計シートのA10:B10へコピペ
sheet2のB:C列の最終行を集計シートのC10:D10へコピぺ
↑これもsheet1同様にsheet2の1番右の列の2行目が空欄になるまで繰り返す。

という処理をやりたいのですが、どなたか詳しい方、ご教授いただけないでしょうか?

Aベストアンサー

こんにちは!

>次にsheet2のB2:C2を集計シートのA10:B10へコピペ・・・

すなわちSheet1のデータは9行目までの表示!というコトですね?
(Sheet1に関してはP列以降にデータがあっても、N・O列までの処理で終了)

一例です。標準モジュールにしてください。

Sub Sample1()
Dim wS1 As Worksheet, wS2 As Worksheet
Dim j As Long, cnt As Long
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
With Worksheets("集計")
.Cells.ClearContents
'▼Sheet1の処理//
cnt = 1
For j = 2 To wS1.Cells(2, Columns.Count).End(xlToLeft).Column Step 2
cnt = cnt + 1
wS1.Cells(2, j).Resize(, 2).Copy .Cells(cnt, "A")
wS1.Cells(Rows.Count, j).End(xlUp).Resize(, 2).Copy .Cells(cnt, "C")
If cnt = 9 Then Exit For '←「集計」Sheetの9行目まで埋まるとループから抜ける
Next j
'▼Sheet2の処理//
cnt = 9
For j = 2 To wS2.Cells(2, Columns.Count).End(xlToLeft).Column Step 2
cnt = cnt + 1
wS2.Cells(2, j).Resize(, 2).Copy .Cells(cnt, "A")
wS2.Cells(Rows.Count, j).End(xlUp).Resize(, 2).Copy .Cells(cnt, "C")
Next j
End With
End Sub

※ Sheet2に関しては2行目のデータがある列まですべて表示されます。m(_ _)m

こんにちは!

>次にsheet2のB2:C2を集計シートのA10:B10へコピペ・・・

すなわちSheet1のデータは9行目までの表示!というコトですね?
(Sheet1に関してはP列以降にデータがあっても、N・O列までの処理で終了)

一例です。標準モジュールにしてください。

Sub Sample1()
Dim wS1 As Worksheet, wS2 As Worksheet
Dim j As Long, cnt As Long
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
With Worksheets("集計")
.Cells.ClearContents
'▼Sheet1の...続きを読む

QC言語でプログラミングできるソフト(初心者)

大学1年で今年から始めてプログラミング(C言語)を学ぶものです。
今のところif文やfor文、関数などの基本をかじった程度なのですが
なんとか自分の家のパソコンでプログラミングを行いたいので、
何か良いソフトのようなものはないでしょうか?(有料でも構いません)

実際に文などが書けて、コンパイルし、結果を出力してくれるものです。
パソコン自体がまだ初心者なので、できればで良いのですが、分りやすいものをお願いします<m(__)m>

Aベストアンサー

#4さんも書かれてますが、大学であればunixかLinuxの環境だと思います。
なので、私もcygwinをお勧めします。windows上にuinxの環境を構築できて、gccという無料のコンパイラが利用できます。
それにunixやlinuxの環境構築の良い勉強になります。

簡単な導入の仕方がありますので試してみてください。
http://www.twcu.ac.jp/~osada/comp2a/cygwin.html
こちらも参考に。
http://programnet.hp.infoseek.co.jp/coloum/colum.html

QExcel VBA 以下について、教えて下さい。 自動マクロを少し直せるレベルです。 マクロ実行前は

Excel VBA

以下について、教えて下さい。
自動マクロを少し直せるレベルです。

マクロ実行前はA列に下記の様に入力されています。

《マクロ実行前》
東京12345港区67890
6
4
5東京12345目黒区67890



東京12345渋谷区67890



マクロ実行後は、A列を下記の様にしたいです。


東京12345港区67890
東京12345港区67890
東京12345港区67890
東京12345港区67890
東京12345目黒区67890
東京12345目黒区67890
東京12345目黒区67890
東京12345目黒区67890
東京12345渋谷区67890
東京12345渋谷区67890
東京12345渋谷区67890


次の東京から始まるセルが来るまでは、直近の一番上の東京を含むセルをコピーしたいです。

分かりづらいかもしれませんが、よろしくお願いします。

Aベストアンサー

No.1 補足

多分マクロ実行前は以下のようなデータだったという事で処理しています。

東京12345港区67890
6
4
5
東京12345目黒区67890



東京12345渋谷区67890

Q初心者におススメのプログラミング言語は何ですか?

C C++ Java などの言語がありますが、中でも初心者(素人)が始めるにあたって一番おススメの言語は何ですか。

 教えてください。 よろしくお願いします。

Aベストアンサー

JavaScriptがオススメです。
理由は
1)ネット上に情報がたくさんある
2)開発環境の構築が容易
3)実行環境の構築が容易
4)実行時の動作がグラフィカルなので「達成感」がある
特に4は重要です。

必要に迫られない勉強は、やる気を継続させる事が結構難しかったりします。
コマンドプロンプト上で実行するような言語の場合、せっかく苦労してプログラムを組んでも
動作結果が地味な事が多いため、動いた事に対する感動が薄くなります。
これが積み重なると、途中で投げ出す結果につながりかねません。
その点、JavaScriptのようにダイアログを出したり色を変えたりといった
動作をさせる言語であれば、やる気の低下を抑える事が出来ます。

もっとダイナミックな動きをさせたいのであれば、
Delphi(Pascal)、C#、VBなどを使うのもいいでしょう。
どれも無料版の開発環境を配布しています。

将来プロになる事を考えているのであれば現在よく使われているPHPや
今後よく使われることになると思われるPython、Rubyなどを勉強するのもいいかもしれませんが
1つのプログラミング言語を身に付ければ他の言語に移るのは割と楽ですので
最初は勉強のしやすさを基準に選ばれると良いかと思います。

JavaScriptがオススメです。
理由は
1)ネット上に情報がたくさんある
2)開発環境の構築が容易
3)実行環境の構築が容易
4)実行時の動作がグラフィカルなので「達成感」がある
特に4は重要です。

必要に迫られない勉強は、やる気を継続させる事が結構難しかったりします。
コマンドプロンプト上で実行するような言語の場合、せっかく苦労してプログラムを組んでも
動作結果が地味な事が多いため、動いた事に対する感動が薄くなります。
これが積み重なると、途中で投げ出す結果につながりかね...続きを読む

Qexcelマクロ記述

EXCELのBOOKがあり、n枚のシートを含んでいます。
Macro1という名称のマクロで、
そのBook内のすべてのシートにMacro2というマクロを実行させる
という場合、Macro1はどのように書けばいいのですか。
次次にシートを開くという操作をどう表すか?
このMacro2では、例えばシートの文字の表示を75%のサイズで表示のようなものを考えています。
またそのときmacro2は、何か記述の追加が必要ならそれはどのようなものか。
よろしくお願いいたします。

Sub Macro1( )
' Macro1 Macro
' 次次とシートを開き、75%サイズにする
xxxxxxxx

Sub Macro2( )
' Macro1 Macro
ActiveWindow.Zoom = 75
End Sub

End Sub

Aベストアンサー

いっぺんにできますよ。

Sub test()
For Each ws In Worksheets
ws.Activate
ActiveWindow.Zoom = 75
Next
End Sub


人気Q&Aランキング

おすすめ情報