ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:VBA 最後に編集したデータにジャンプ) VBAで最後に編集したデータにジャンプする方法 2014/10/19 08:40 このQ&Aのポイント VBAで最後に編集したデータがあるセルに常にカーソルを合わせる方法を紹介します。shift + F5ショートカットだと操作をするたびに異なる場所にジャンプしてしまう問題を解決します。具体的なVBAコードを提供します。Excelでのデータ編集がスムーズになります。 VBA 最後に編集したデータにジャンプ VBAで最後に編集したデータがあるセルに常にカーソルを合わせたいと思って ネットで調べたのですが、なかなかいいのが見つからなくて教えていただきたいです。 ショートカットで shift + F5もあるようですが、これだと何かしらの操作をしたら (セルにポインタを合わせる、セルを空白にするなど)でもその場所に飛んでしまいますが、 そうではなくブックを開いたとき、下の例ならつねにデータが最後である「そ」のセル、 次回「たちつてと」と書けば今度は「と」の右隣にポインタを合わせたいVBAコードが欲しいです。 あ い う え お か き く け こ さ し す せ そ Sub Auto_Open() With End With End Sub ROWの場合だと こういうページを見つけたのですが、 http://officetanaka.net/excel/vba/tips/tips130.htm ROW をColumns に変えても上手くいきませんでした。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (13) 専門家の回答 質問者が選んだベストアンサー ベストアンサー kkkkkm ベストアンサー率66% (1755/2631) 2014/10/19 20:13 回答No.9 kkkkkmです。 その後あれこれ試していたら、一度書式設定でたとえば罫線とかを設定して、その後その設定を解除しても使用済みとして認識されてしまいました。2行下の行に何もない場合、データ行の下2行を削除して試してみてください。 もしくは、先に紹介したページの最後の <S6> 書式付きセルを除外する の項目を参照してコードを変更してください。 No5のコードだと変更しやすいと思います。 質問者 補足 2014/10/19 22:12 削除すればいけました!!! 何かしらのデータが認識されていたかもしれません。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 1 その他の回答 (12) kkkkkm ベストアンサー率66% (1755/2631) 2014/10/19 10:47 回答No.2 ThisWorkbookモジュールに以下のようなコードでいかがでしょう Private Sub Workbook_Open() With ActiveSheet .Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, .UsedRange.Column + .UsedRange.Columns.Count - 1).Select End With End Sub 質問者 お礼 2014/10/19 17:20 回答有難うございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 mt2008 ベストアンサー率52% (885/1701) 2014/10/19 09:53 回答No.1 やりたいのはこういう事でしょうか? #変数の宣言や、シートの指定は省略しています。 Sub test() nRow = Range("A1").End(xlDown).Row nCol = Range("A1").End(xlToRight).Column + 1 Cells(nRow, nCol).Select End Sub 質問者 補足 2014/10/19 10:23 早速の回答、朝から有難うございます。 このマクロを実行してみましたがなぜかC2にジャンプしてしまいました。 それとブックを開いたら自動実行させたいです。 Auto_Open()というのが必要ですよね? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 12 カテゴリ [技術者向] コンピュータープログラミング・開発その他(プログラミング・開発) 関連するQ&A VBA 最後に編集したデータにジャンプ2 前回(http://okwave.jp/qa/q8795572.html)では質問の仕方が不十分で申し訳ありませんでしたので、 再度もっと細かい仕様も含めて質問いたします。 B列には必ずデータがあり、1行目も日付固定で、2行目からずっとデータを入れていきます。 ただし、B列と1行目以外どのセルにどんなデータがあるかは常に不定です。空白もあります。 右端のセルは揃っているとは限りません。 データは文字列です。 ブックではなくある特定のワークシートだけを開いた時に限り、最後にデータを入れた右隣のセルにポインタを合わせるようにしたいです。 A B C D E F ……….以下続く 1 10/1 10/2 10/3 10/4 10/5 ……….以下続く 2 Z 空白 空白 空白 あ ……….以下続く 3 Z あ あ あ 空白 ……….以下続く 4 Z 空白 あ 空白 空白 ……….以下続く 5 Z 空白 空白 あ 空白 ……….以下続く 6 Z あ あ あ あ ……….以下続く . . . 以下続く 以上です。よろしくお願いします。 「フォーカスのあるフィールドに色を付ける」vba 帳票フォームの全てのコントロールに 条件付き書式で 「フォーカスのあるフィールドに色を付ける」を行いたいのですが コントロールが多すぎる為VBAでループさせたいのですがコードがわかりません。 http://www.tsware.jp/tips/tips_187.htm これをVBAで行いたいです。 VBAでの条件付き書式は Sub Sample() Dim Field As String Dim myFormName As String With Forms(myFormName).Controls(Field) With .FormatConditions .Delete With .Add(acExpression, , "[" & Field & "]=""あ""") .BackColor = 225 End With End With End With End Sub こんな感じで出来る事は知ってますが、 vbaで「フォーカスのあるフィールドに」と言う条件の付け方がわからないので教えてください。 エクセルVBAについて こんにちわ! 今、エクセルでAシートの入力した項目をBのシートへデーターが入力できるようなシステムを以下のようにくみました。 そこでBシートにデーターが入力されるのですが20行まで入力すると入力できないようにしたいのですが、なかなか上手くいきません。 A1からF20まで書式のロックを外しそれ以外のセルは保護をかけたのですがその状態でVBAを使って20行以上入力できませんという感じのエラー表示をしたいのですが、どうすればいいでしょうか? VBAは初心者ですが宜しくお願いします。 Private Sub CommandButton1_Click() Dim row As Integer row = WorksheetFunction.CountA(Sheets("date").Columns(1)) + 1 Sheets("date").Cells(row, 1).Value = Range("B2").Value row = WorksheetFunction.CountA(Sheets("date").Columns(2)) + 1 Sheets("date").Cells(row, 2).Value = Range("B3").Value row = WorksheetFunction.CountA(Sheets("date").Columns(3)) + 1 Sheets("date").Cells(row, 3).Value = Range("B4").Value row = WorksheetFunction.CountA(Sheets("date").Columns(4)) + 1 Sheets("date").Cells(row, 4).Value = Range("B5").Value row = WorksheetFunction.CountA(Sheets("date").Columns(5)) + 1 Sheets("date").Cells(row, 5).Value = Range("B6").Value row = WorksheetFunction.CountA(Sheets("date").Columns(6)) + 1 Sheets("date").Cells(row, 6).Value = Range("B7").Value Sheets("統制入力").Select Range("B17").Select ActiveWindow.SmallScroll Down:=-9 Range("B3:B7").Select Selection.ClearContents Range("B1").Select End Sub ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム VBA教えてください VBA初心者です。 画像を添付します 赤く塗られているセルには C~Eまでセルを結合し なおかつ結合したセルの中に「停止」の文字をいれます。 これを手動で行うのではなく 自動で(VBAで) 赤く塗られているセルだけに反応し その行のセル(C~E)を結合し なおかつその結合されたセルの中に 「停止」の文字を中央添えにされた状態で 自動入力できるようにしたいです 教えてもらったコードでは Private sub worksheet_change(byval target as range) If target. Interior.colorindex=3 then Range(cells(target.row,3),cells(target.row,5)).merge Cells(target.row,3).value="停止" End if End sub でした。 これでは出来ませんでした 改善点か 新しくコードを書いてもらえると めちゃくちゃ助かります。 回答お願いします VBA で2つのプロシージャを一つにまとめたい いつもここにはお世話になっており、ありがとうございます。 さて、タイトルにもありました通り、下記2つのプロシージャでコマンドボタンを設定して、実行しておりますが、これを一つのプロシージャ(ボタン)にまとめたく、ご指導お願いいたします。 ○作ろうとしているVBAの概要 1)EXCELのデータベースで、一枚目の「inputシート」に入力し、2枚目の「dataシート」でデータをどんどん格納していきます。 2)データは、「顧客CDボタン」で管理しており、これをキーとしています。 3)「顧客CD」は[inputシート」ではC4セル、「dataシート」ではA列にで管理しています。 3)データは新規にデータを入力したときの登録ボタン(一つ目のプロシージャ)、既存のデータを編集して、上書きするときの、変更登録ボタン(二つ目のプロシージャ)があります。 ○相談したい内容 「登録ボタン」と「変更」ボタンを一つにまとめて、ひとつのボタンとして、新規にデータを登録するときも、変更したデータを登録するときも、同じボタンで行えるようにしたい。 '■1つ目のプロシージャー Private Sub CommandButton1_Click() '登録ボタン Dim row As Integer row = WorksheetFunction.CountA(Sheets("data").Columns(1)) Sheets("data").Cells(row, 2).Value = Range("C5").Value row = WorksheetFunction.CountA(Sheets("data").Columns(1)) Sheets("data").Cells(row, 3).Value = Range("C6").Value row = WorksheetFunction.CountA(Sheets("data").Columns(1)) Sheets("data").Cells(row, 4).Value = Range("C7").Value row = WorksheetFunction.CountA(Sheets("data").Columns(1)) Sheets("data").Cells(row, 5).Value = Range("F5").Value ActiveWorkbook.Save End Sub '■2つ目のプロシージャー Private Sub CommandButton3_Click() '変更ボタン Dim fRange As Range Dim fRow As Long If (Range("C4").Value = "") Then '顧客CDが入力されていない? MsgBox "顧客コードを入力してください。", vbExclamation Exit Sub End If Set fRange = Sheets("data").Columns(1).Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows) If (fRange Is Nothing) Then '見つからなかった? MsgBox "入力された顧客コードが存在しません。", vbExclamation Exit Sub End If fRow = fRange.row '検索された顧客DCの行位置を求める Sheets("data").Cells(fRow, 2).Value = Range("C5").Value Sheets("data").Cells(fRow, 2).Value = Range("C5").Value Sheets("data").Cells(fRow, 2).Value = Range("C5").Value Sheets("data").Cells(fRow, 3).Value = Range("F5").Value vba エクセル 2行目から、最終行までEmptyにしたいのにならないです。 1行目はフィールド行なのに、そのままにしたいのですが 2行目から最終行は空白にしたいです。 なので Sub TEST() With Sheets("log") lastRow = .Cells(.Rows.Count, "b").End(xlUp).Row LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column .Range(.Cells(2, LastCol), .Cells(lastRow, LastCol)) = Empty End With End Sub としたのですが、何も起こりません。 lastRowは100、LastColは5なのですが、 このマクロを実行しても何も起こらないです。 なぜでしょうか? VBAの時間入力について 先日、時間を文字列で、HH:mmのフォーマット入力するPGを教えて頂き、 内容理解をしているのですがわからない部分があります。 ★の部分の条件で、00:00も入力したいです。 ご存知か方がおられましたら教えてください。 よろしくお願い致します。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から 'Intersect:http://officetanaka.net/excel/vba/tips/tips118.htm 'Is Nothing:nullではない 'Selection.Count <> 1:選択数が1以下ではない(<> :等しくない) ' Not IsNumeric(Target):数値ではない If Intersect(Target, Columns(12)) Is Nothing Or Selection.Count <> 1 _ Or Not IsNumeric(Target) Then Exit Sub ' 'Target:セルの値は24:00以下 '2つの数値の除算を行いし,その剰余を返す 'Mod:2つの数値の除算を行いし,その剰余を返す '★ここで00:00時も入力したい。 If Target <= 2400 And Target Mod 100 < 60 Then ' Application.EnableEvents = False ' With Target ' If Len(Target) = 3 Then .Value = 0 & ":" & Right(Target, 2) ElseIf Len(Target) = 3 Then .Value = Left(Target, 1) & ":" & Right(Target, 2) Else .Value = Left(Target, 2) & ":" & Right(Target, 2) End If .NumberFormatLocal = "hh:mm" ' End With ' Application.EnableEvents = True ' Else MsgBox "入力値が不正です。" ' With Target ' .Value = "" .Select End With Exit Sub ' End If End Sub 'この行まで vba セレクション excellでVBAで 今ある列の連続した範囲(仮に$D$2:$D$8とか、$B$3:$B$7)とかがセレクトされているとする。 そのセレクトされている状態をマクロで処理し、そこに例えば$D$2:$D$8の場合は、順に2,3,4,5,6,7,8という数字を表示したい。その回答として Sub test1() For Each c In Selection c.Value = c.Row Next End Sub あるいはSub test2() With Selection .Formula = "=ROW()" .Value = .Value End With End Sub でできるのですが、 順に2,3,4,5,6,7,8という数字を表示のところを(2),(3),ーー,(8)と( )を付けて表示するにはどうすればいいか。 VBAコピー範囲について教えてください。 VBAのコピーペーストの下記プログラムで、 Sub コピー() Dim rng As Range Set rng = Worksheets("2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) With Range("b2:J10") rng.Resize(.Rows.Count, .Columns.Count).Value = .Value End With End Sub コピー範囲 のJ10の部分(データ入力行)が、その都度変わるため、J10の部分を、 J列のデータが入力されている最終行としたいのですが、どのようなプログラムに すればよいのでしょうか。 どなたかよろしくお願いいたします。 VBA 下記に、ツールバーにある印刷ボタンを押すとチェックBOXがチェックされていない時印刷できないようにするというVBAですが下のVBAのような感じで 例えばセルA1にFALSEという文字が入っていたら印刷不可で印刷するかしないかを選択。もし、セルA1にTRUEという文字が入っていたら印刷可。 というのをVBA教えて下さい。 よろしくお願いします。 Private Sub Workbook_BeforePrint(Cancel As Boolean) With Worksheets("sheet1").CheckBoxes("チェック 1") If .Value <> 1 Then If MsgBox("印刷しますか?", vbYesNo) <> 6 Then Cancel = True End If End With End Sub エクセルVBA初心者です。 エクセルVBA初心者です。 「テキストボックスとコマンドボタンを使って、シートのA列にあるセルの文字列を左から検索する」という事をやりたいのですが、うまくいきません。お教えください。ちなみにCtrl+Fではなく、VBAで。 Private Sub TextBox1_Change() Dim R As Range With ActiveWorkbook.Worksheets("Sheet名") Set R = .Columns(3).Find(Me.TextBox1.Value) End With If R Is Nothing Then MsgBox "該当セルなし" Else R.Activate End If Set R = Nothing End Sub としましたが、テキストボックス入力+Enterで出来てしまい、コマンドボタンが機能しません。また、BackSpaceやDelをすると、他のセルに飛んでしまいます。???? 【Excel VBA】チェンジイベント Excel2003を使用しています。 マクロの記録を元に、チェンジイベントを下記のように作成しました。 下記は、B列の11行目以降のセルのデータが変化したら、その行のF列に入力規則を設定するように作成したつもりです。 テストもしてみましたが、きちんと動作しました。 さらに、B列の11行目以降のセルのデータがクリアされたら、その行のF列に設定した入力規則もクリアしたく If Target.Columns(2).ClearContents And Target.Row >= 11 Then Cells(Target.Row, 6).Validation.Delete End If 分からないながらにも、↑このように追加して試してみたのですが、何も動作しなくなりました(^_^;) こういう場合は、どのようにコードを書いたらいいのでしょうか? よろしくお願いします。 -------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Row >= 11 Then With Cells(Target.Row, 6).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$F$3:$F$7" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = False End With End If End Sub ------------------------------------------------ AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 簡単なVBA エクセルで特定の列データを削除したいのですが シンプルな形を教えてください ちなみに今は以下のようなVBAを使っています。 Sub 特定の列を削除する() For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1 If Cells(1, i) = "りんご" Then Columns(i).Delete End If Next i For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1 If Cells(1, i) = "みかん" Then Columns(i).Delete End If Next i For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1 If Cells(1, i) = "ばなな" Then Columns(i).Delete End If Next i End Sub エクセルVBAで別ファイルのデータを取得しに行ってます。 エクセルVBAで別ファイルのデータを取得しに行ってます。 http://www.officetanaka.net/excel/vba/tips/tips28.htm の二つ目に書かれたコードを参考に作ったんですが、取得セル範囲を何も入力されてない所まで広げると何も入力されてない所は『0』と取得、表示されてしまいます。 取得した時に『0』で表示するのを避ける方法はありますか? エクセル VBAでWEBページデータを順番に抽出 J2セル~J2320セルに、異なるWEBページのURLを入力しています。 それぞれのURLから特定のデータを抽出して、K2~K2320セルに表示するにはどうすればよいのでしょうか。 J2のURLからデータを抽出してK2へ表示するだけの単純なVBAは下記のとおり作成しましたが、残りのJ3~J2320についても同様の処理を繰り返したいと思います。 どうすればよいのでしょうか。ご教示ください。 ----------------------------------------------- Sub クエリ抽出() With ActiveSheet.QueryTables.Add(Connection:="URL;" & [J2], Destination:=Range("K2")) .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "13" .Refresh BackgroundQuery:=False End With End Sub ----------------------------------------------- excel VBA のコードを編集したい 下記VBAのコードですが、「選択範囲をCSVファイルにしてカレントフォルダに出力する」というものですが これを編集して、どのパソコンでもデスクトップに出力すると編集したいです。 どのようにコードを変更したらいいか、教えていただけないでしょうか?自分ではどうがんばっても変更できそうにありませんでした。 どうかよろしくお願いいたします。 Sub Selection_CSV_Output() 'ファイル名をINPUTBOXで取得 '選択範囲を調べる '選択範囲の左上から1列づつ最終列までセルの値を取得しカンマを付加した文字列を作成 '1行分の文字列の最後カンマを削除し、改行コードを付加する '行数分だけ繰り返す 'CSVファイルとして、出力 '確認メッセージをMSGBOXで表示 'テストバージョン Dim myInBox As String Dim start_row, start_column, end_row, rows_count, columns_count, end_column As Long Dim SaveD, d As String Dim CsvF_name, cellD As String Dim i, j As Long 'InputBoxでファイル名指定 myInBox = Application.InputBox(Title:="ファイル名", prompt:="拡張子なしのファイル名を入力してください", Default:="001", Left:=100, Top:=100, Type:=2) If myInBox = "False" Then Exit Sub 'Debug.Print myInBox 'ファイル名 CsvF_name = myInBox & ".csv" '範囲を調べる start_row = Selection.Row '開始行 start_column = Selection.Column '開始列 end_row = start_row + Selection.Rows.Count - 1 '終了行 end_column = start_column + Selection.Columns.Count - 1 '終了列 rows_count = Selection.Rows.Count '範囲行数 columns_count = Selection.Columns.Count '範囲列数 '読み込みと出力 Open CsvF_name For Output As #1 For i = start_row To start_row + Selection.Rows.Count - 1 '行の繰り返し For j = start_column To end_column '列の繰り返し cellD = Cells(i, j).Value SaveD = SaveD & cellD & "," 'カンマを付加 Next j '列の終わり SaveD = Left(SaveD, Len(SaveD) - 1) '最後の一文字(カンマ)を消す SaveD = SaveD & vbCrLf '改行コードを付加 'Debug.Print SaveD Next i 'Debug.Print SaveD Print #1, SaveD Close #1 '確認メッセージ MsgBox CsvF_name & "名でカレントフォルダに作成しました。" End Sub excel vbaについてです VBA初心者で、暇な時にいろいろためしています。 以下のマクロを組んだのですが、エラーがでてうまくいきません。 どこがいけないのかご指摘願います。 Sub ather() Dim A As Range Dim B As Range Dim i As Integer With ThisWorkbook.Worksheets("Sheet1") For i = 1 To 30 Set A = Cells(i, 1) Set B = Cells(1, i) If Not .Range(A).Interior.ColorIndex = vbYellow Then GoTo port10 If Not .Range(B).Interior.ColorIndex = vbRed Then GoTo port10 .Range(B).Offset(, 1).Value = "○" port10: Next i End With End Sub イメージとしてはセルの塗りつぶしが黄色で、かつ右隣のセルの塗りつぶしが赤の時に、 赤色セルの右隣のセルに○を表示させようとしているのですが。。。 こうしたらいいんじゃない?といったアドバイスもお願いします(-人-) VBA 重たいためコード改善お願いします VBA歴3か月の学習者です。 セルに入力された行数をもとに、セル範囲を決め、シートXYにコピペをするコードを作りました。 コード自体は、思い通りに動いていますが、1000回程度のループ処理を考えており、すべて終わるのに1時間程度かかってしまっています。 よろしければ、下記コード内で、時間を短縮できる編集のアドバイスをお願いいたします。 Sub test() Dim i, LastR, TopR, BottomR, myRow As Long Dim SheetD, SheetX, SheetY, SheetSu, mySheet As Worksheet Dim ColumnF, ColumnL, n As String Dim ResultRange As Range Application.ScreenUpdating = False Set SheetD = Sheets("D") Set SheetX = Sheets("X") Set SheetY = Sheets("Y") Set SheetSu = Sheets("Sum") Set ResultRange = SheetSu.Range("Z6:BT6") ColumnF = "A" ColumnL = "M" LastR = SheetD.Range(ColumnF & Rows.Count).End(xlUp).Row TopR = 2 i = 2 Do Until SheetD.Cells(i, "X") = "" And SheetD.Cells(i, "Y") = "" If SheetD.Cells(i, "X") = "" Or SheetD.Cells(i, "Y") = "" Then i = i + 1 Else With SheetD TopR = .Cells(i, "X").Value BottomR = .Range("B" & TopR).End(xlDown).Row .Range(ColumnF & TopR & ":" & ColumnL & BottomR).Copy End With With SheetX .Columns(ColumnF & ":" & ColumnL).ClearContents .Range("B1").PasteSpecial Paste:=xlPasteValues End With With SheetD TopR = .Cells(i, "Y").Value BottomR = .Range("B" & TopR).End(xlDown).Row .Range(ColumnF & TopR & ":" & ColumnL & BottomR).Copy End With With SheetY .Columns(ColumnF & ":" & ColumnL).ClearContents .Range("B1").PasteSpecial Paste:=xlPasteValues End With ResultRange.Offset(Cells(Rows.Count, "Z").End(xlUp).Row - 5).Value = ResultRange.Value i = i + 1 End If Loop Application.CutCopyMode = False SheetX.Columns(ColumnF & ":" & ColumnL).ClearContents SheetY.Columns(ColumnF & ":" & ColumnL).ClearContents Application.ScreenUpdating = True MsgBox "Finish" End Sub vba なぜこうなるのか・・・。 こんばんは、よろしくお願いします。 A1セルにデータが入っている状態で、以下の変数を使いA列の最終データが入っている行を調べると、(65536)が表示されます。なぜ、(1)にならないのでしょうか? ためしにA1及びA2セルにデータを入れマクロを実行すると、正確に2が表示されました。 Sub 練習() dim maxrow as long maxrow = Sheets(1).Range("a1").End(xlDown).Row msgbox maxrow End Sub EXCEL2000を使用しています。よろしくお願いします。 vbaでの正規表現について教えてください 「セルに入ってる値が数値ならA列からE列まで赤色にする」 を正規表現で行いたいのですがよくわかりません。 http://officetanaka.net/excel/vba/tips/tips38.htm を参考にしているのですが Sub Sample1() Dim RE, strPattern As String, r As Range Set RE = CreateObject("VBScript.RegExp") strPattern = "SUM\(" With RE .Pattern = strPattern ''検索パターンを設定 .IgnoreCase = True ''大文字と小文字を区別しない .Global = True ''文字列全体を検索 For Each r In ActiveSheet.UsedRange If .test(r.Formula) Then r.Interior.ColorIndex = 3 Next r End With Set RE = Nothing End Sub を、どう改造すれば、私のやりたい事になるのでしょうか? 【1】 まずstrPattern で、「数値ならば」はどうやればいいでしょうか? 【2】 次にtest(r.Formula)は、数式だからFormulaを使ってるのですよね? 数値を検索する場合はFormulaを何に変えればいいでしょうか? 【3】 最後に、 r.Interior.ColorIndex = 3はそのセルだけの色を変えるのですよね? A列からE列までにするにはどうすればいいでしょうか? 例えば A3セルに「1」が、A6セルに「3」が入っていたら、 A列からE列まで赤色にしたいです。 注目のQ&A 40代前半。自立していないと言われました 恋人が異性と2人で出かける場合、どこまで許す? 注意された時 恋人について わざわざ隣に座る男性 弱者男性が心を保ち続けるための生き方について パソコンの買換え だし巻きたまご 定電流源 教えて下さい カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム マッチングアプリは顔写真が重要!容姿に自信がなくても出会いを見つけるには 美容男子ミドル世代の悩み解決?休日ファッション・爪・目元ケア プラモデル塗装のコツとは?初心者向けガイド 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
補足
削除すればいけました!!! 何かしらのデータが認識されていたかもしれません。