エクセルvbaを勉強しています。

ネットなどで調べていると、dim myRange as range に見られる、int型や、long型でない変数があることに気がつきました。(あと、worksheetとかです。)
これって何でしょうか。なんでも宣言できるのでしょうか?
また、これらをvbaヘルプで見るためのキーワードがあれば教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/11/27 23:04:44
  • 終了:2006/11/29 23:51:39

ベストアンサー

id:ipexxon No.5

ipexxon回答回数11ベストアンサー獲得回数12006/11/28 15:36:42

ポイント50pt

オブジェクト変数と呼ばれるものです。

簡単な説明は↓を

VBA基本(これが解ると、他シートや他ブックの参照もできる。)

もっと詳しく知りたい場合はVB6やVBScriptなどを学習されるのが良いかと思います。

@IT:運用 Windows管理者のためのWindows Script Host入門 第2回 WSHスクリプト・コーディングの第1歩 1.スクリプト実行のプロセス

ヘルプに関しては、VBAのヘルプから「range」「worksheet」などで検索すれば出てくると思います。

id:rick55

ipexxonさんのエクセルでお仕事のHP大変参考になりました。ピンポイントで誘導ありがとうございました。

2006/11/29 23:49:43

その他の回答(4件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/11/27 23:25:54

ポイント20pt

http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page4.htm

オブジェクト型の一種ですね。

id:rick55

早速の回答、ありがとうございました。

2006/11/29 23:37:04
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912006/11/27 23:32:55

ポイント40pt

Integer や Long はデータ型と呼ばれるものです。

それに対して Worksheet, Range, Cells などはオブジェクトと呼ばれるものです。

オブジェクトは、関数とプロパティを持ち、それによってオブジェクトの持つ特徴を制御したり、状態を調べたりします。


例えば、Range というオブジェクトは、Excel では最もよく使用するオブジェクトの一つで、単一もしくは複数のセルに相当します。

Range("A1").Value = 1

とすれば、A1セルに1を設定することになります。

また、セルには式や書式、罫線といった様々な情報が付いています。

Range("A1:B2").Interior.ColorIndex = 3

とすれば、A1:B2 のセルに赤い色が塗られます。


このように、オブジェクトとはそれに関連する情報をひとまとめにした集合体と考えると良いでしょうか。

どんなオブジェクトがあるかは、VBEで F2キーを押すと、左側がオブジェクト(クラス)、右側にそれぞれにどんな属性(プロパティ)があるかが見れます。


EXCEL でお仕事

ちょっと難しいかもしれませんが、少しEXCEL で VBA のことがわかってきたときに見ると、良いと思います。

id:rick55

エクセルでお仕事は結構有名ですよね。

よく見てみます。

2006/11/29 23:38:13
id:ardarim No.3

ardarim回答回数896ベストアンサー獲得回数1442006/11/27 23:46:31

ポイント40pt

ヘルプでDimの説明を読んでもらうと書いてあると思いますが、IntegerやLongなど一般的に知られている型のほかに、オブジェクト型としてアプリケーションが提供するオブジェクトを変数に格納することができます。


Excel VBAの場合は、Excelが提供するオブジェクトとして、RangeやWorksheetといったものがあります。

一覧は「表示」→「オブジェクトブラウザ」でExcelが提供するオブジェクトの一覧を見ることができます。


あとはこのあたりを読んでみるのがよいと思います。

Microsoft Office Excel 2003 オブジェクト モデルの初心者向けガイド

id:rick55

なるほど。でも、簡単なようで肩に力が入るHPですね。ちょっと後で、見てみます。

2006/11/29 23:41:16
id:TONTON3 No.4

TONTON3回答回数212ベストアンサー獲得回数42006/11/28 09:55:31

ポイント30pt

http://q.hatena.ne.jp/1164636281

range等はオブジェクト変数です。

myRange. と.を打つとメンバが表示されると思います。

それがメソッドやプロパティです。

これらは自分でも作成することができます。

クラスモジュールを追加すると

class1 というものが追加されます。

この名前はなんでもいいですがそうすると

dim a as class1

なんてのもできます。

また、type endtype で囲まれたものを宣言することもできます。

これはユーザ定義型(構造体)です。

Private Type test

lngA As Long

End Type

使うときは

Dim b As test

b.lngA = 5

こんな感じになります。

id:rick55

自分で好きに作れるものなのかどうか知りたかったのです。ありがとうございます。

2006/11/29 23:47:49
id:ipexxon No.5

ipexxon回答回数11ベストアンサー獲得回数12006/11/28 15:36:42ここでベストアンサー

ポイント50pt

オブジェクト変数と呼ばれるものです。

簡単な説明は↓を

VBA基本(これが解ると、他シートや他ブックの参照もできる。)

もっと詳しく知りたい場合はVB6やVBScriptなどを学習されるのが良いかと思います。

@IT:運用 Windows管理者のためのWindows Script Host入門 第2回 WSHスクリプト・コーディングの第1歩 1.スクリプト実行のプロセス

ヘルプに関しては、VBAのヘルプから「range」「worksheet」などで検索すれば出てくると思います。

id:rick55

ipexxonさんのエクセルでお仕事のHP大変参考になりました。ピンポイントで誘導ありがとうございました。

2006/11/29 23:49:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません