VBA RangeやValueはキーワードではないのですか?

このQ&Aのポイント
  • VBA RangeやValueはキーワードではないのでしょうか?
  • VBAのキーワードには、If、Loopなどの定義済みのステートメントやLen、Absなどの定義済みの関数、Or、Modなどの演算子がありますが、RangeやValueはキーワードではありません。
  • VBAのキーワードとは、Visual Basicが言語の一部として使用する名前のことであり、RangeやValueはその定義済みの要素ではありません。
回答を見る
  • ベストアンサー

VBA RangeやValueはキーワードではないのですか?

VBAのキーワードの定義をネットで調べたら、以下のように書いてありました。 キーワードとは、Visual Basic が言語の一部として使用する名前のことです。キーワードには、たとえば、If、Loop などの定義済みのステートメント、Len、Abs などの定義済みの関数、Or、Mod などの演算子があります。 http://office.microsoft.com/ja-jp/access/HP051867721041.aspx RangeやValueはキーワードではないのでしょうか?"range"と小文字で入力すると"Range"と大文字に変換されたりして最初から定義されているような気がするのですが。

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

  • ベストアンサー
  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

リンク先のドキュメントを読む限り、 VB(VBA)の言語構造として定義されているため、自作関数、変数、定数として使用できないアルファベット文字列があります、それをキーワードと呼びます。 と解釈できそうですね。 意訳混じりですが。 RangeやValueは、言語構造ではない(ライブラリとして実装されている)ため、自作関数、変数、定数に同じ名前を使用できます。なのでキーワードとは呼びませんという解釈になりそうです。 他に言語構造としては、+-/*=()等々もありますが、それらは記号なのでわざわざキーワードとは呼ばないのでしょうね。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

Rangeはオブジェクト、Valueはプロパティといい(分類され)ます。 使う場面によっては、これらはキーワードの扱いになるでしょう。 もう少し具体的に、使う(使いたい)場合を示して質問すること。

関連するQ&A

  • Excel 2007 VBA で実行時エラーが出る

    Excel 2007 VBA で下記の様に入力し、実行すると、 実行時エラー 1004  アプリケーション定義またはオブジェクト定義のエラーです。 と表示され、ストップしてしまいます。 ' 登録番号を付ける Range("C7").Value = 1 Range("C8:C42").Formula = "=IF(LEN(E8)>2,C7+1,"")" 初心者で、どうしても原因がわかりません。 教えて下さい、お願いします。

  • Excel:VBA-改行して同じ動作を繰り返すには

    VBAで下記の動作を実現させたいのですが、もう一歩のところで上手くいきません。 アドバイスを宜しくお願いします。 ・C列が空欄になるまで、AD列を改行させて同じ作業を繰り返す。 Do Loopステートメントで下記のように作ってみたのですが、"AD2"から"AD3"に改行させることが 出来ないのです。 ------------------------------------ Sub 棚番2() Range("C2").Activate Do Until ActiveCell.Value = "" Range("AD2").FormulaR1C1 = _ "=IF(ISERROR(VLOOKUP(RC[-27],棚番!C2:C3,2,0)),"""",VLOOKUP(RC[-27],棚番!   C2:C3,2,0))" Range("AD2").Copy Range("AD2").PasteSpecial Paste:=xlPasteValues ActiveCell.Offset(1).Activate Loop End Sub --------------------------------- 何卒アドバイスを下さいますよう宜しくお願いいたします。

  • エクセル 任意の文字をVBAで使いたい時

    Excel VBAで、任意の文字(特定の文字ではなく、何か文字があるという状態)を含んだ語を、置換したいです。 具体的には、「;?」を「; ?」として置換したいです。 ※ここで「?」は任意の文字としています。 以下のコードで試しましたが、うまくいきません。 Sub macro2() Dim myRange As Range Dim keyWord1 As String, keyWord2 As String Dim bool As Boolean Set myRange = Range("C4") keyWord1 = ";?" 'ワイルドカードを使用 keyWord2 = "; ?" bool = myRange.Replace(keyWord1, keyWord2, LookAt:=xlWhole) End Sub keyWord1 = ";?" 、keyWord2 = "; ?"の「" "」の部分に何を入れればいいか、ご教授願います。 宜しくお願い致します。

  • Excel VBA について

    ExcelのVBAのコードでB列の1カ所の「zz2300」を取得したいのですが、 どういう記述をすればよろしいのでしょうか。 ※その列には同じ文字は存在しません。 test=Range("b65535").End(xlUp).Rowの定義があるのですが使えますか?

  • VBAについて(カッコをとりたい)教えて下さい。

    VBA初心者です。 こちらで教えて頂きながらマクロを組んでいます。 また1点アドバイスをお願い致します。 N列に()の付いた文字列が所々入ります。 その()だけをとって中の文字列だけを表示したいのですが… (△△△)→△△△ ※カッコ内の文字数は定まっていません。 以下の様なマクロを組みましたが、範囲をN列全部、 またはN4~N列最終行までとしたいのですが、 どの様に追記したらよいでしょうか??? どなたかご指導をお願い致します。 Sub カッコをとる() Dim str As String With ActiveSheet str = .Range("N11") .Range("N11").Value = Mid(str, 2, Len(str) - 2) End With End Sub

  • Excel2013>VBA>sendkeys動ず

    Excel2013のVBAを使って自動更新をしようと思っています。    A  B   C 1  あ  AA  0 2  い  AB  1 3  う  AC  0 4  え  AA  1 5  お  AA  0 上記のようにシート内にデータはあります。B列「AA」C列の「ゼロ」を更新してC列の値を「1」にしようとしたときに、ピボットテーブルを使ってみようと思いました。 ピボットテーブルにてB列の「AA」、C列の「ゼロ」を抽出表示しました。   A  B  C 1 あ  AA  0 5 お  AA  0 思っていたように1行目と5行目が抽出されました。 後はゼロを別の値(仮に「2」とします)に変更するときに、カーソルの移動がうまくいきませんでした。 Range("C1").End(xlDown).Select Do ActiveCell.Offset(0, 0) = "2" ActiveCell.Offset(-1, 0).Select If Len(ActiveCell.Offset(0, 0)) = 0 Then Exit Do End If Loop しかし、これではカーソルが「C4」に移動してしまいました。 ピボットテーブルでたたんでしまっても、カーソルは見えないセルに移動するようです。 そこで、下記のように変更しました。 Range("C1").End(xlDown).Select Do ActiveCell.Offset(0, 0) = "2" Application.SendKeys "{UP}" If Len(ActiveCell.Offset(0, 0)) = 0 Then Exit Do End If Loop これは、カーソルがまったく動かずに最初の地点にいたままでした。 そこで、次はTABで移動することにしました。 Range("C1").Select Selection.SpecialCells(xlCellTypeVisible).Select Do ActiveCell.Offset(0, 0) = "2" Application.SendKeys "{tab}" If Len(ActiveCell.Offset(0, 0)) = 0 Then Exit Do End If Loop これでもカーソルは動きませんでした。 どうにかしてsendkeysの動かし方、もしくは更新でもっとうまいやり方をご存知の方、是非教えてください。よろしくお願いいたします。

  • EXCEL VBA 文中の書式ごと複写するには

    EXCEL VBAのプログラミングについて教えてください。 セルA1とセルB1が結合されており、セルには「あいうえお」と入力されています。 入力された「あいうえお」の内、「いうえ」は赤文字+太字を設定したと仮定します。 その結合されたセルの文章と文字色+太字を、結合されていないA3というセルに複写する場合、 下記の様なコードを考えてみましたが、長文になると処理が遅いので知恵を貸してください。 Range("A3").Value = Range("A1").Text For i = 1 To Len(Range("A1").Text)   Range("A3").Characters(i, 1).Font.Color = Range("A1").Characters(i, 1).Font.Color   Range("A3").Characters(i, 1).Font.Bold = Range("A1").Characters(i, 1).Font.Bold Next i よろしくお願いします。

  • Visual-C#の event キーワードの「意義」が分かりません

    Visual-C#というものを初めて触っている者です。 フォーム上にボタン等のコントロールを配置して、ボタンをダブルクリックすると、イベントハンドラをユーザが記述するコード部分(partial class)が表示されてくるのですが(Form1.cs)、このpartial classの残りの、ユーザが編集する必要のないコードはForm1.Designer.cs内に自動生成されます。 このForm1.Designer.cs内に、たとえば this.Button1.Click += new System.EventHandler( this.Button1_Click );  ←(1) のようなコードが自動生成されているわけです。 ここで、Button1とはButtonクラスのオブジェクトであり、ClickとはButtonクラスの(Controlクラスから継承した)Clickイベントだということです。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.click(VS.85).aspx public event EventHandler Click  ←(2) ここで使用されているEventHandlerとは何かというと、delegateです。 http://msdn.microsoft.com/ja-jp/library/system.eventhandler.aspx public delegate void EventHandler(Object sender, EventArgs e)  ←(3) 「イベントとは、コンピュータ・プログラムの実行に際し、何らかのアクションが発生した際にプログラムに発信される信号(これをメッセージと呼んだりする)をいう。」(『ウィキペディア(Wikipedia)』) この「イベント」を、.NetFrameworkのクラスライブラリでは、(2)のように「EventHandler」という名前のデリゲートクラス型の変数として定義しているわけですが、(2)の中の「event」というキーワードの「意義」が分かりません。 Controlクラス定義内で(2)式のように、コントロールの「クリック」イベントを、「EventHandler」という名前のデリゲートクラス型の変数と定義するというのなら、それはそれで分かるのですが、なぜ更に「event」というキーワードを付ける必要があるのかが、よく分からないのです。

  • Excel VBA で自然対数の関数Lnが使えない

    Windows XP SP2, office excel 2003 VBAで自然対数を使うため,Ln()の関数を使おうとしたのですが実行すると「関数が定義されていません」というエラーメッセージが出ます.ネットで調べると,ワークシートでもVBAでも普通,Ln()の関数は使えるようです. Lnの後ろにカーソルがある状態でF1を押してヘルプを出そうとすると,「キーワードが見つかりません」ではなく,「ページが見つかりません」と表示されます.「キーワードが見つかりません」は,でたらめな文字列のヘルプを出そうとすると表示されるものです. 同様にLog10()も使うことができませんでしたが,EXP()は使えます.なんとかVBAでLn()を使えるようにすることはできないでしょうか?

  • エクセルVBA FindNextについて

    エクセル2002使用です。 VBAのFindNextメソッドについて教えていただけますでようか?不定期の行ごとに存在する○から△までの表を抽出するために次のようなコードをつくりました。   A  B  C  D 1 ○ × × 2 × × × 3 △ × × 4 5 ○ × × 6 × × × 7 △ × × Sub 表の抜き出し() Dim myr1 as range Dim myr2 as range Dim firstmyr1 as String Set myr1 = Columns("A").Find(What:="○") firstmyr1 =myr1.adress Set myr2 = Columns("A").Find(What:="△") Do  処理・・・・ Set myr1 = Columns("A").FindNext(after:=myr1) Set myr2 = Columns("A").FindNext(after:=myr2) Loop until myr1.adress = firstmyr1 End Sub 上記のようなコードで、処理の後のSetステートメントでFindNextを使うと、A5の○とA7の△を見つけてほしいのに、1回目の処理・・・の後の読み込みでウオッチで見るとmyr1値が△になってしまって2回目の読み込みにいけません。Setステートメントが2つ以上あるときのFindNextメソッドの使い方で何か注意点があるのでしょうか? よろしくお願いします。

専門家に質問してみよう