- 締切済み
VBAのLike演算子で、
こんにちは。いつもお世話になっております。 VBAのLike演算子で、 日本語・アルファベット・数字が混ざっている文字列について、 アルファベット・数字のみを選択したいとき、 次のようなことを考えました。 j = 0 Do While Rng.Characters(j) Like "[!a-zA-Z0-9]" Rng.Start = Rng.Start + 1 j = j + 1 Loop しかし、実行してみると、 「指定されたコレクションのメンバは存在しません」 というエラーが返されてしまいます。 私の知識不足かと思いますが、 原因をご存じでしたら、教えていただきたいと思います。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
- imogasi
- ベストアンサー率27% (4737/17068)
- Wendy02
- ベストアンサー率57% (3570/6232)
- hallo-2007
- ベストアンサー率41% (888/2115)
関連するQ&A
- 簡単なエクセルVBA
最近エクセルのVBAを勉強し始めたのですが、 1×1=1 1×2=2 1×3=3 ・ ・ 9×9=81 と出るようにしたいのですが、 Sub kuku() Do While i < 9 i = i + 1 Do While j < 9 j = j + 1 a = i * j Debug.Print i; "×"; j; "="; a Loop Loop End Sub としたところ1×9=9までしかでません。 どうすれば上手くループするようになるでしょうか? お願いします。
- ベストアンサー
- Visual Basic
- VBA 九九 Do While
VBAのDo Whileステートメントを使って九九の表をつくりたいのですが、何度やっても途中で詰まり、実行に至りません。 For NextとDo untilではできたと思うのですがDo Whileがどうしてもわからなくて… どなたか助けてください。お願いします。 Sub 九九計算_for() Dim i, j As Integer For i = 1 To 9 For j = 1 To 9 Cells(i, j).Value = i * j Next Next End Sub Sub 九九計算_do_until() j = 1 Do i = 1 Do Cells(j, i).Value = i * j i = i + 1 Loop Until i = 10 j = j + 1 Loop Until j = 10 End Sub
- ベストアンサー
- Visual Basic
- VBAにおけるニュートン法
VBAでx+EXP(x)+sin(x)に初期値を与えてニュートン法で解くプログラムを作りたいのですが、Do loop whileの使い方がいまいちよくわかりません。 教えてくださいお願いします。
- 締切済み
- Visual Basic
- VBAでのDoWhileの中のDoWhile
VBAでファイル名取得のマクロを作成しているのですが buf = Dir(C\aa\aaa\, vbDirectory) buf= Dir(C:\aa, vbDirectory) Do While buf <> "" Do While bufa <> "" msg = msg & bufa & vbCrLf bufa = Dir() Loop msg = msg & buf & vbCrLf buf = Dir() Loop がうまく動作しません。 Dirの()が空白なのと、Do While <>の中身が空白のどちらかが原因だと思うのですが Do Whileの中でさらに Do Whileを動作させるにはどのように書けばいいのでしょうか?
- 締切済み
- Visual Basic
- ACCESS VBAが分からない!この問題ですが
ACCESS VBAの勉強をはじめました。 下のプロシージャを実行するとメッセージボックスに「2018/08/30」と出るようですが、なんでそうなるのかが分からないんです。 ちなみに Loop は繰り返しでWhileは~間という意味は分かるのですが。。。 よろしくお願いいたします。 Sub Lesson() Dim ret As Date, i As Long ret = #8/29/2018# Do ret = ret + 1 i = i + 1 Loop While i > 3 MsgBox ret End Sub
- ベストアンサー
- Visual Basic
- VBAでln関数の計算
VBAでln関数から以下のようなプログラムを組みましたが、 オーバーフローします。どこが原因でしょうか? 初心者なので初歩的なところで間違えていると思います。 Sub log関数() Dim i As Double Dim t As Double i = 2 Do i = i + 1 t = Log(i) Loop While (t > 10) MsgBox (i & "はin(x)が最初に10を超える数字です") End Sub 値として最初の数字の3でとまってしまいます。 ぜひとも間違いご指摘ください。
- ベストアンサー
- オフィス系ソフト
- VBA 桁数が混在するソート
シートやセルを使わず、VBAのみでクイックソートを実装したいのですが 桁数が混在する列だと正しくソートされません。 1 1 10 10 15 2 等と言う結果になります。 元のデータは外部ファイルで修正をかけたくないので VBA内で格納したデータの桁数を調節する等解決策はありますでしょうか? 以下メソッドです Sub QuickSort1(ByRef argAry As Variant, ByVal lngMin As Long, ByVal lngMax As Long, sortnum As Integer) Dim i As Long Dim j As Long Dim vBase As Variant Dim vSwap() As Variant: ReDim vSwap(UBound(argAry)) vBase = argAry(sortnum)(Int((lngMin + lngMax) / 2)) i = lngMin j = lngMax Do Do While argAry(sortnum)(i) < vBase i = i + 1 Loop Do While argAry(sortnum)(j) > vBase j = j - 1 Loop If i >= j Then Exit Do For i3 = 1 To UBound(argAry) vSwap(i3) = argAry(i3)(i) argAry(i3)(i) = argAry(i3)(j) argAry(i3)(j) = vSwap(i3) Next i = i + 1 j = j - 1 Loop If (lngMin < i - 1) Then Call QuickSort1(argAry, lngMin, i - 1, sortnum) End If If (lngMax > j + 1) Then Call QuickSort1(argAry, j + 1, lngMax, sortnum) End If End Sub
- 締切済み
- Excel(エクセル)
- VBA ループについて質問です。
お世話になります。 VBA ループで『2行目を削除して空白になったら終了』がうまくいきません。 ※1行目は固定です。 ※2行目を削除したら、3行目以下が上がって3行目が2行目になります。 ※2行目に何もなくなったらループ終了 ※実際は複数シートで他の作業もあるので、『i』でなく『j』です。 ※複数シートでの作業が出来る記述でおねがいします。 ▼▼▼▼▼▼ Dim j As Long j = 2 Do While Cells(j, 1) <> "" Sheets("◆抽出先 (提灯)").Select Rows("2:2").Select Selection.Delete Shift:=xlUp j = j + 1 Loop ▲▲▲▲▲▲ どうすれば良いでしょうか? すみませんがよろしくお願いいたします。 Windows10 EXCEL 2010
- ベストアンサー
- Visual Basic
- 【VB】セルが空になるまで処理を繰り返したい
Excel VBAを使用してです。 列Aにデータがずらっと入っています。 そのデータを列Bに、 Do while ~loop か Do until ~loopを使って データが無くなるまでコピーするという処理を書きたいのです。 VB歴が浅いためひらめきません。よろしくお願いします。m(__)m
- ベストアンサー
- Visual Basic
- 無限ループ VBA IE操作
VBAです。 とあるサイトで Sub IE_wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.readyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub が無限ループに陥ります。 中断して Exit Sub を入れてみましたが、抜けれません。 ページは既に表示済みです。 なぜ無限ループが抜けられないのか、 なぜページが表示されているのにこのコードが繰り返されるのか 何かわかる方よろしくお願いします。
- ベストアンサー
- オフィス系ソフト