• ベストアンサー

Excelの名前を取得したい

VB初心者です。宜しく御願いします。 ExcelのシートのRange("A11")の名前に「AAA」と付けています。 VBから、Excelを起動して、そのExcelのシートのRange("A11")の名前を取得したい場合はどうすれば良いのでしょうか? VB側でシートにそのセルにその名前が付いているかのチェックをしたいのです。 ご教授御願いします。宜しくお願い致します。

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.5

  Nameプロパティを使って   MsgBox Range("A11").Name.Name 以上。  

Mark0817
質問者

お礼

ありがとうございます。 単純にNameだけではダメなのですね。 使わせてもらいます。

その他の回答 (4)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.4

直接取れそうもない(知らない)からつぎのようにでもするか。 Sub getname() For Each nm In ActiveWorkbook.Names If nm.RefersTo = "=Sheet1!$A$11" Then nmab = nm.Name Exit For End If Next MsgBox nmab End Sub

Mark0817
質問者

お礼

ありがとうございます。 そういう方法もありますかー。 でもこれだとレスポンスが心配なような気がします。 もっと簡単にとる方法が知りたいですね。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

>セルA11の名前を知る方法が知りたいのです。 私はVBのバージョンが知りたいです。 VB6.0等かVB.NET等か。。。 ExcelVBAではないですよね?

Mark0817
質問者

お礼

すみません。 説明不足でしたね。 VB6です。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

MsgBox Range("AAA").Address アクティブシートにその名前が存在すれば、セルアドレスを取得できます。 無ければエラーで実行が止まります。 あとは、ヘルプの「Names コレクション オブジェクト」等を参考にしてみてください。

Mark0817
質問者

お礼

ありがとうございます。 そうなんです。アドレスは取れるのですけど、名前が取れないんですよね~。 どうすれば良いのでしょうか?

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Book内の名前を取得して、セルA11が含まれていたら当たり。 と言う事ではないかな?・・・憶測ですけど。

Mark0817
質問者

お礼

↓名前からセルを導き出すことはできるのですが・・・。 range("AAA").address 逆が出来ないのです。。。 セルA11の名前を知る方法が知りたいのです。

関連するQ&A

  • TextBoxにExcelの背景色を取得

    こんにちは、VB2008を使用しています。 TextBoxにExcel内の文字と、その文字が入っているセルの背景色を取得しようとしています。文字の取得は TextBox1.Text = sheet.Range("A1").Value で出来るのですが、背景色の取得は TextBox1.BackColor = の = 以降がわかりません。どなたか教えて頂けなしでしょうか?

  • Excel 式でシートの名前を取得する方法

    Excelのセルにそのシートの名前を表示する式を 設定したいのですが、 「シートの名前」の式での表し方が分かりません。 Sheet1のA1セルの値を表示するには、 「=Sheet1!A1」と書くというのは分かるのですが。 ご存知の方、ご教授下さい。 出来るだけバージョンに依存しない方法にしたいと 思っています。

  • エクセルマクロで特定シートの特定セルの中身取得

    エクセルのマクロで、ファイル選択(GetOpenFilename)で取得したファイルの特定のシート(sheet1等固定のシート名)とそのシートの特定のセル(A1等固定のセル)にある数値を取得し、マクロ起動したエクセルのあるセルに貼り付けたいのですが、どうすればよいでしょうか。 かなり略してますが、 nama=GetOpenFilename で選択したファイルのファイル名を Range("A1") = Dir(name) で貼り付け、その横のセル(A2)に name#sheet!A1を貼り付けたいのです。 ご存知な方、すみませんが教えていただけますでしょうか。 (エクセルは2003です。)

  • Excel.Rangeで取得した値を配列に格納するには?

    プログラミング初心者です。 VB.NET でExcelからデータを取得したのですが、配列等に格納したいのですが、うまくできなくて困っています。どなたか教えてください。 例)以下のデータを取得する場合 セルA(列)1(行)からA5まで セルB1からB5まで セルC1からC5まで Dim xl_APP As Excel.Application Dim xl_Book AS Excel.Workbook Dim xl_Sheet As Excel.Seets = xl_Book.Worksheets Dim xl_W_Sheet As Excel.Worksheet = CType(xl_W_Sheet.Item(1),Excel.Worksheet) 中略 Dim range_data As Excel.Range Dim i Integer Dim j Integer Dim strCel As String For i = 1 To 5 For j = 1 To 3 range_data = CType(xl_W_Sheet.Cells(i,j),Excel.Range) strCel = CStr(range_data.Value)  ↑String型変数に格納していますが、多次元配列?に格納して取り出せるようにしたいのですが、どうしたらよいのでしょうか? Next Nest <range_dataに格納されるデータ> A1:氏名 B1:学年 C:1 年齢 以下同上 ・・・・のように取り出したいと考えています。 よろしくお願いします。

  • エクセルVBA  activesheetの非表示

    エクセル2002使用です。 sheet1のモジュールにsheet2のセルから値を取得するコードを書きました。 セルの値を取得後、sheet1の画面に戻します。 値を取得するために一度sheet2をactivesheetにする必要があると思うのですが、 その際にマクロを実行するとエクセルの画面が一瞬sheet1からsheet2に変わってしまいます。 この、一瞬のsheet2の画面を出さない方法はあるのでしょうか? sub aaa() Dim tukikekka as range Worksheets("sheet2").Activate Set tukikekka = ActiveSheet.Range("A2:A15") _ .Find(what:=ActiveSheet.Range("A1"), lookat:=xlWhole) Worksheets("sheet1").Activate ActiveSheet.Range("H7").Value = tukikekka.Offset(,7) end sub (実際のコードはもう少し長いので、Sheet2がはっきりと見えます) よろしくお願いします。

  • Excelのセルアドレスの指定方法

    VB2008でExcelの操作をしている初心者です。ファイルを開き、シートを指定しセルのデータを読み込むまではなんとかたどり着きましたが、セルへのデータ書き込みが出来なく困っています。下記のようにセルアドレスをA1方式で指定すれば書き込みできますがR1C1方式でセルアドレスを指定する方法が判りません。よろしくお願い致します。 exCel.Range("A1").Value = "Hello World"

  • エクセルのリンクについて

    こんにちは。 エクセルについての質問です。 通常、エクセルで他のエクセルからのデータを取得するとき ='[あああ.xls]sheet1'!$A$1 (「あああ.xls」のsheet1のA1セルのデータを取得) というような式を利用しますが、 この「AAA.xls」の部分を【指定したセルと同一名のものを取得】することは可能でしょうか? (すみません、意味がわかりませんよね。) 例えば… 「あああ.xls」というブックがあります。 そこに、セル「B1」に入力した名前と同じタイトルのブックの セル「A1」からデータを引っ張りたい。 「B1」が「いいい.xls」だったら「いいい.xls」のブックの「A1」から、 「B1」が「おおお.xls」だったら「おおお.xls」のブックの「A1」から データを持って来たいのです。 “=B1”というようなやり方ではさすがに無理なようで悩んでいます。 わかりにくい質問で申し訳ありません。 もしお分かりの方がいらっしゃいましたらお願い致します。

  • エクセルの入力規則で複数のリストを選択する方法

    ご教授をお願い致します。 エクセル2003を使っているのですが、 統計というファイルのA1のセルで入力規則を入れようとしています。 今現在、「AAA」というシートにリストを作っておき、(_1という名前で作成) 元の値を「=INDIRECT("_1")」とした、入力規則を作成しています。 今回、新しいシート「BBB」というシートを作成し、そこに新しいリストを作成を考えています。 AAAのシートもしくはBBBのシートにあるものをドロップダウンリストとして 管理のA1で選べるようにするということはできるのでしょうか。 説明の仕方がうまくいきませんが、どなたかご教授をお願い致します。

  • Excel VBA セル範囲に名前をつける

    Excel VBA独学中の初心者です。 セル範囲に名前をつける方法で以下の2つの方法があるようです。 (1) 同じように動作しますが違いは有るのでしょう。 (2) 本質的に考え方または内部動作は違うのでしょうか。 お分かりの方教えていただけますと助かります。 --------------- '方法1 Sub 名前の定義1() Range("sheet1!A2:B3").Name = "名前1" End Sub '方法2 Sub 名前の定義2() Range("A1").Select ActiveWorkbook.Names.Add Name:="名前2", _ RefersTo:="=sheet1!A2:B3" End Sub

  • Excelのコンボボックス選択方法

    VB初心者です。宜しく御願いします。 ExcelのコンボボックスをVBから選択したいのですが、上手くいきません。 AAAというコンボボックスで中身が「111」「222」「333」の場合、 objXlsSeet.Range("AAA").Select = "222" としたのですが、実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 となります。 ご教授御願いします。宜しくお願い致します。

専門家に質問してみよう