- ベストアンサー
エクセルVBAで指定範囲をしたい
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 No.2の補足について。 ですから、 Range(Range("A1").Value & "1").Column を紹介しているんですが。 値をテキストボックスから取っているのなら、 Range(TextBox1.Value & "1").Column という風にすればいいだけですし。 でも、 >その入力値を使用してfor文でまわし、文字列の >検索を行うと思っています。 というなら、For Each~Next文にすればいいのでは? 仮に、A1から指定範囲の矩形で検索するなら、以下のようにすればいいのでは? (TextBox1に列番号アルファベット、TextBox2に行番号を入力するとします。) Dim rg As Range Dim EndCol As String '列番号アルファベット Dim EndRow As String '行番号 EndCol = TextBox1.Value EndRow = TextBox2.Value For Each rg In Range("A1:" & EndCol & EndRow) 'ここに検索処理 Next rg
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17068)
私はCells(x,y)をVBAで使うとき Cells(1,"A")と書いてA列であることを判るようにしています。こういう方法もあります。cells(1,2)などの両方を数字にする表現に拘るなら、c=Range("B1").Column (B1の1は何でも良い)とcに一旦設定して、Cells(1,c)とすれば、例えばS列は数字ではいくらだったか悩まなくてすむと思います。時折指で勘定したりしてますが。 こう言う質問でなければごめんなさい。 参考 Sub test01() MsgBox Range("B1").Column ' MsgBox Range("a2").Row End Sub 2と表示されます。
- maruru01
- ベストアンサー率51% (1179/2272)
No.3の補足について。 以下のようにします。 For Each rg In ActiveSheet.Range("A1:" & EndCol & EndRow) words = rg.Value Next rg "ActiveSheet"は、範囲の方に付けておきます。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 A1に列番号アルファベット(「A」など)、B1に行番号(「10」など)があるとします。 VBAでは、 Range(Range("A1").Value & "1").Column で、対応した列番号が取得出来ます。 ワークシート関数なら、 =COLUMN(INDIRECT(A1 & "1")) です。 なお、両方ともエラートラップはしていません。 ところで、VBAで検索範囲を指定するのなら、わざわざ列番号アルファベットを列番号数値にする必要はないのでは?
補足
返答ありがとうございます。 指定範囲は、テキストボックスを2つ用意して、 列と行の値を入力させようと思っています。 その入力値を使用してfor文でまわし、文字列の 検索を行うと思っています。#1番さんのやり方も 試してのですが、ワークシート用の関数なのでできませんでした。何かアルファベットを 数値に変換する方法はございますでしょうか?
- mshr1962
- ベストアンサー率39% (7418/18948)
=CODE(UPPER(A1))-64 でAを1...Zを26にできます。(小文字にも対応) ただAAは27にはなりません。そこまで考えるなら =IF(LEN(A1)=1,0,(CODE(UPPER(LEFT(A1,1)))-64)*26)+CODE(UPPER(RIGHT(A1,1)))-64 としてください。
補足
指定範囲は、テキストボックスを2つ用意して、 列と行の値を入力させようと思っています。 その入力値を使用してfor文でまわし、文字列の 検索を行うと思っています。先程のやり方を はワークシート用の関数なのでできませんでした。何かアルファベットを数値に変換する方法はございますでしょうか?
関連するQ&A
- エクセル関数の範囲指定を、座標数値で指定したい
address関数とindirect関数で、行・列を数値で指定して、セルの値が求められますが、同じように行・列の数値を4つ使って範囲の指定をしたいのですが、どのような関数を使えばよいでしょうか? 具体的には、=MATCH(A1,範囲,1)の範囲を、2組の座標の数値で指定したいのです。
- ベストアンサー
- オフィス系ソフト
- excel rankで範囲を複数のシートから指定する?
excelで複数のシート(仮にsheet1,sheet2)のA列の複数行に数値が入っています。 それぞれのシートのA列のとなりの列にsheet1,sheet2のA列にある全ての数値の中での順位を出したいです。 rankを使うときに範囲を複数のシートにまたがって指定できますでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- [Excel2000]指定日付範囲でデータを絞り込みたい
お世話になります。 指定日付範囲でデータを絞り込みたいのですが、いろいろWeb情報を巡回しても解決しないので教えてください。 例えば、A列が日付形式、B列が数値形式で入力されたシートがあった場合、指定した日付範囲のみ行を絞り込んでシートに表示させたいのですが、どのような方法が考えられるのでしょうか? 次のようなデータがシートに入力されている状態で、2000/01/01から2000/06/30までの日付でデータを絞り込みたい。 A列 B列 2000/01/01 1 2000/02/01 2 2000/03/01 3 2000/04/01 4 2000/05/01 5 2000/06/01 6 2000/07/01 7 2000/08/01 8 2000/09/01 9 2000/10/01 10 2000/11/01 11 2000/12/01 2 希望する結果は A列 B列 2000/01/01 1 2000/02/01 2 2000/03/01 3 2000/04/01 4 2000/05/01 5 2000/06/01 6 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 文字列一致で指定範囲内のセルの背景に色を付けたい
マクロ初心者です。宜しくお願い致します。 sheet1のA1からZ100までの範囲に、ランダムにアルファベットA~Zが入力されています。 その範囲には空白や、その他の文字列も入力されています。 sheet2のA列にA~Zのいずれかが入力されており、sheet2のA列のアルファベットを検索し sheet1の範囲に入力のアルファベットと一致したら、sheet1の側のセルに色を付けたい (単色:赤)です。 条件付き書式を使ってみましたが、範囲指定の問題なのか分かりませんがうまくいきません。 お力添えいただけますでしょうか? 宜しくお願い申し上げます。
- ベストアンサー
- Excel(エクセル)
- エクセルVBAで特定の範囲を検索したい
VBAを使って、A1セルに入力した数値をA列から検索して、そのセルをアクティブにしたいのですが、検索範囲のA列を特定するにはどのようなコードが必要でしょうか?現状ではシート全体を検索してしまいます。 超初心者です。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excel 2007 データを素早く範囲指定
こんにちは。 excelを使用していますが、データが大量すぎて毎日すごく疲れます。 ショートカットキーか何らかの方法で、素早く正確に作業したいので相談させてください。 A列には1~1000行まで、範囲すべてにデータが入っています。 B列には1行目にデータが入っていますが、他にははいっていません。 C~Z列にはデータがあったりなかったりです。 B列1行目にマウスポインタがある状態で、 A列からZ列の1行~1000行目までをすばやく範囲指定する方法を教えてください。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- 【Excel VBA】条件に合うデータの転記
Excel2003を使用しています。 2つのシート間の特定の範囲内で、条件に合うデータを転記したいのですが… Sheet1(A1:C41) ← 一定範囲 Sheet2(選択範囲) ← 都度、選択範囲取得 Sheet2の選択範囲内で、A列とB列の値が、Sheet1のA列とB列のそれぞれの値と一致した場合、Sheet1のC列の値をSheet2のE列に転記したいのですが、こういう場合、コードはどのように書いたらいいでしょうか? 条件に合ったものを順に転記していくコードは書いたことがあるのですが、特定の範囲内ということや、転記する場所が指定されたりしていて、つまづいています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで範囲指定の方法
指定する列の範囲はAから始まり、X~Z位までです。行は決まっています。先ず次の文で列の範囲を取得します。 Range("A1").CurrentRegion.Select I = .Selection.Columns.Count 例えば5行目のI列を指定する時はどうすれば良いでしょうか。 Range("A5:" & I & "5").Select では、エラーになります。
- ベストアンサー
- Visual Basic
- Excel VBAで範囲選択後にソートしたい
OS: Windows 2000 ソフトウェア名/バージョン:Excel2000 Excelマクロで以下のような処理をしたいのですが、どのように記述したらよいのでしょうか? マクロの記述例を教えてください。 (1)Excelの複数シート上にデータがA列とB列に以下のように並んでいる。 ※以下の例の場合、3行~6行はグループ01、8行~12行はグループ02、~ (2)グループ行単位の範囲指定を実行し、その中でB列のソートを実行したい。 (3)データ行の行数、グループの数はシートごとにばらばらで決まっていない。 (4)A列のデータ行は上4桁がブランク、グループ行は上2桁がブランクとなっている。 (5)B列には数値しか入っていない。 【行数】 【A列】 【B列】 (01行) タイトル行1 (02行) タイトル行2 (03行) △△△△データ01 数値(78979) (04行) △△△△データ02 数値(34533) (05行) △△△△データ03 数値(21423) (06行) △△△△データ04 数値(51343) (07行) △△グループ01 (08行) △△△△データ11 数値(43522) (09行) △△△△データ12 数値(23432) (10行) △△△△データ13 数値(42312) (11行) △△△△データ14 数値(24123) (12行) △△△△データ15 数値(54343) (13行) △△グループ02 (14行) △△△△データ21 数値(64353) (15行) △△△△データ22 数値(42343) ~ ◆上記の例でやりたいこと: 1:データ行の最初の行(03行)から最初のグループ行を探してその1行前(06行)までを範囲指定してB列の数値でソート 2:最初のグループ行の次の行(08行)から次のグループ行を探してその1行前(12行)までを範囲指定してB列の数値でソート 3:2のグループの次の行(14行)から~以下、データの最終行まで処理する。 以上、よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- エクセルVBAで範囲の指定をしたいです(初心者)
エクセルVBAで範囲の指定をしたいです(初心者) 列AからJがデータが入る範囲です。 列AとBとCには必ず数値等が何かしら入ります。 列Dは常に空白です。 列E以降は何か入ることも入らないこともあります。 7行目までデータがある場合、 A1セルからこの場合はJ7セルまでを範囲指定したいのですが 行数は未定なので、 Range("A1").Select Range(Selection,Selection.End(xlDown)).Select でA列のデータ最終行まで下がり、そこから9つ右の列までを 範囲指定するというのがよくわかりません。 自動記録で絶対参照と相対参照を切り替えてやってみたのですが、 どうしても Range(Selection, Selection.End(xlDown)).Select ActiveCell.Range("A1:J7").Select と常にA1からJ7が指定になってしまいます。 バージョンは2003です。 つたない質問文で申し訳ありませんが、 どなたか宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
補足
maruruさん 分かりやすいコメントに加え、サンプルまで教えていただきありがとうございます。 前のプログラムでは for i = 1 to EndRow for j = 1 to EndCol '検索処理 words = ActiveSheet.Cells(i, j) next j next i 変更した後は以下のようになります。 For Each rg In Range("A1:" & EndCol & EndRow) 'ここに上記の検索処理を追記する場合、どう 置き換えれば良いのでしょうか?ご教示頂ければ幸いです。 Next rg