- ベストアンサー
VBで、開いているExcelシートのアクティブセルの情報を取得
VBのモジュールで、開いているExcelシート上のアクティブセルの座標、値を 取得するにはどうすればよろしいのでしょうか。まずVBモジュールと参照対象のExcelシートを起動します。次ににExcelシート上のあるセルを選択し、VBモジュールの[セル情報]等のボタンにより、選択されているセルの座標、値をメッセージボックスに表示したいのです。よろしくお願いいたします。
- kashima_antlers
- お礼率83% (5/6)
- Visual Basic
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
下記コードで実現できそうです。 Sub test() Dim t As Range Set t = Application.ActiveCell MsgBox t.Address, vbInformation + vbOKOnly, "座標" End Sub
関連するQ&A
- VBからExcelのアクティブセルの位置を知る方法
VB6でExcel2000のワークシートを操作するプログラムを作成しています。次のようなことをやりたいと思ってます。 (1)Excelのワークシートを開く (2)ワークシートの1点をクリックして、アクティブセルとする。(例えばA1) (3)VBのプログラムのボタンを押すと、アクティブセルを基点に3×3を選択範囲とする。 そこで次のようなプログラムを書いてみました。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = GetObject(, "Excel.Application") If Err.Number Then MsgBox "Excel が起動されていません。" Err.Clear Else ' MsgBox "Excel はすでに起動中です。" Set xlBook = xlApp.Workbooks.Item(1) Set xlSheet = xlBook.Worksheets.Item(1) 'アクティブセルを取得する 'アクティブセルを3x3に拡張する計算 xlSheet.Range("3x3に拡張した範囲").Select Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End If しかし、アクティブセルを取得する方法がわかりません。誰か教えてください。
- ベストアンサー
- Visual Basic
- Excel2003 VB コマンドボタン
Excel2003 VB コマンドボタン VB初心者です。コマンドボタンをクリックしたら、テキストボックス1に入力してあるコードと一致する値を別シートのデータTBからvlookupで呼び出してテキストボックス2に表示したいのですが、うまくいきません。コードの例を教えていただけると助かります。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- スプレッドのアクティブセルの値を取得したい
スプレッドでアクティブセルで選択した位置の値を取得したいのですが、どのように記述したらよいでしょう? spr.Col = spr.Activecol spr.Row = spr.ActiveRow ↑セルの位置は取得できているみたい。選んだ値(文字なり、数字)を取得したいのですが。 教えてください。
- 締切済み
- CSS
- Excel2002について
Excel2002を使用しております。 同一シート内でアクティブセルのある行の左端を参照して、 別の特定のセルに代入する方法を教えて下さい。 もう少し具体的に言いますと、 行1の何れかのセルをアクティブにした時、 行1の左端の値を、A10に表示する。 また、行2の何れかのセルをアクティブにした時、 行2の左端の値を、A10に表示する。 行3の~(リピート) 宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- (VB初心者) VB起動時既に起動されているExcelの情報
VisualBasic 6.0 初心者です。 既に起動しているExcelの後にVisualBasicを立ち上げた場合、 既に起動しているExcelの情報を得ることが出来るのでしょうか? やりたい事は Excel起動⇒VB起動⇒Excelのセルを選択⇒そのセルに入力されている値 を取得。 VB起動⇒Excel起動の場合はActiveCellの値を取得出来たのですが 既に起動しているExcelの場合 エラー になってしまいます。 お手数ですが、ご教授願います。 Private Sub コマンド1_Click() MsgBox ActiveCell End Sub 'Form_Load時にこれを実行しないと開いたExcelのアクティブセル値を得られない?? Private Sub Form_Load() MsgBox ActiveCell End Sub
- ベストアンサー
- Visual Basic
- EXCEL2007 VBA アクティブでないワークシートの名前を取得したい
Sheet1とSheet2の【A1セル】【B1セル】には以下の処理が入っています。また2つのシートにはVBAを使って、再計算がされるたびに自身のシート名を表示するメッセージボックスを出力する処理を記述しています。 【A1セル】 リアルタイムで値が送られてくる。 【B1セル】 A1セルの値を使った式 【VBA】 Private Sub Worksheet_Calculate() MsgBox ************** End Sub ここからが質問なんですが、Sheet3をアクティブシートにしている場合、VBAの「*****」の部分に何と記述すれば、再計算されたシート名を取得できますか?
- 締切済み
- その他MS Office製品
- 【Excel-VBA】アクティブセルが参照しているブックを開くには?
いろいろ検索したのですが、見つからないので質問させていただきます。 対象のセルが他ブックのセルを参照しているとき、そのブックが開かれていない場合、正しい値にはなりません。 (例:A1に =[Book2.xls]Sheet1!$A$3 が入力されている) そこで、そのセルが参照しているブックをVBAで自動的に開く方法を考えています。 つまり、例で言えば、Book2.xlsを開きたいのです。 文字列関数を使ってひとつひとつの文字を取得し、ファイル名を得て開く方法しかないのでしょうか? 何かいい方法があれば教えてください。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのVBプログラムについて
インターネット上にあった 下記のVBプログラムをエクセルで使用しているのですが、 セルの変化を数値入力後、「エンター」を押さなければ認識しません。 『 ='Sheet2'!N13 』のように他のシートから数値を取り、その変化で、 メッセージボックスを起動させたいのですが、上手くいかないのです。 何方か、対処方法、宜しく御願いします。 : 次のサンプルは、値を変更したセルがセルA1~B5に含まれる場合にのみ、 メッセージボックスを表示します。 対象とするワークシートのシートモジュールに記述してください。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1:B5")) Is Nothing Then Exit Sub Else MsgBox "セルの値が変更されました" End If End Sub
- 締切済み
- Excel(エクセル)
- VBA シート上のチェックボックスの値の取得
(作業環境 windowsXP Excel2007 作業対象のブックは.xls) シート上に1ブックにつき3000個ほどのチェックボックスがあります。 このブックが現在約1000個、すでに配布・回収されております。 これからチェックボックスの選択状況やセルに入力された値をマクロで収集するのです。 大半のチェックボックスにはすでに「リンクするセル」の設定がされており、そのセルの値を参照すればチェック状態の取得は容易なのですが、 最初にこのブックを作った方が一部のチェックボックス群(3000個中500個程度)にリンクの設定をするのを忘れていたのです。 このリンク設定のされていないチェックボックスの値の取得についてご質問です リンクセルの設定をするのであれば sub a() ActiveSheet.Shapes("Check Box 1").Select Selection.LinkedCell = "$A$1" ・ end sub でいいのでしょうが、これだとselectのはずみで チェックボックスがTrueになってしまします。 リンクせずに直接チェックボックスの値をブール型で取得しようと思い dim a as boolern a = Activesheet.checkboxes(1).value としましたが、ためしに別ブックのシート上に1つだけチェックボックスを作って実行すると、チェック状態にかかわらずTrueが返ります。 checkboxesの使い方がダメなんでしょうか? 求める回答としては (1)上記のやり方でもできるが、間違っている部分がある (2)上記以外のやり方でもっと簡単な(早い)やりかたがある のどちらかのようなアドバイスをいただけると幸甚です。 よろしくおねがいします
- ベストアンサー
- オフィス系ソフト
- エクセル2013のアクティブセル表示されない
エクセルを2010から2013に切り替えてから不具合がおきています。 問題は下記です。 1.シートAとシートBがあり、シートBの情報を参照し、シートAに表示させたいとします。 2.シートAのセルに「=」と入力し、シートBにページ移動します。 ここで、問題がおきるのですが、シートBでアクティブセルが表示されないのです。 その為、どのセルをシートB上で、選択しているかを視覚的に確認することができません。 選択自体はされているので、左上の選択セルを示す文字を読めば、場所がわかるのですが、 視覚的にわからないので、とても不便です。 2010では、このようなことがなく、 また、同じ2013を使う人でも、シートBでしっかり視覚的にアクティブセルが表示される人もいるので、 設定上の問題だとは思うのですが、解決できず、困っています。 お分かりの方、どうかご教示ください。
- 締切済み
- その他([技術者向] コンピューター)
お礼
Range データ型は Excel.Rangeで定義すればよろしかったのですね。 ありがとうございました。完璧です。
補足
Rangeというデータ型がVB6.0ではコンパイルエラーになるのですが?