テキストファイルに
GetPoint = ErrMsg("おはよう",target)
の行があるとします。
ダブルクオートでくくられた文字列だけを出力させたい場合
下記コードでどこが間違っているでしょうか??
今のままだと全てのコードが出力になるんですよ。。。
アドバイスをいただけると幸いです。
Sub Main()
Dim iFileNumber As Integer
iFileNumber = FileSystem.FreeFile()
Open "C:temp\sample.txt" For Input As #iFileNumber
Dim stResult As String
Dim stSerch As String
Dim point As Long
Do While (Not FileSystem.EOF(iFileNumber))
Dim stBuffer As String
Line Input #iFileNumber, stBuffer
stResult = stResult & stBuffer & vbNewLine
If Instr(stResult,Chr(34)) > 0 Then
If Instr(stResult,Chr(34)) > 0 Then
v = stResult
End If
End If
Loop
Close #iFileNumber
End Sub
VBで繰り返して実行するプログラムを作ったのですが、
スタック領域をオーバーしてしまいます。
再帰呼び出しになっているのはわかったのですが、
改善ができません。
簡略したら下記のような状態でした。
Sub test1()
test2
End Sub
Sub test2()
test1
End Sub
このtest1を実行して、繰り返し作動するようにしたのですが、
当然スタックオーバーフローになります。
簡単にループに変形できるのでしょうか?
範囲指定した箇所のオートシェイプを削除したく、WEBで見つけた物に手を加えてみました。しかし、実行されるとシート内全てのオートシェイプが削除されてしまいます。
今削除したいのは、Range("B21:AA22")範囲内のものだけです。
正直なところ大半の意味も判らないまま触っているので、問題箇所の検討が付きません。
どの部分を修正するばいいのでしょうか?
また、何故ダメなのかも合せてご教示いただけたら幸いです。
宜しくお願い致します。
Dim myShp As Shape
Dim myR As Range, SR As Range
On Error Resume Next
Set myR = Range("B21:AA22")
If Err.Number <> 0 Then Exit Sub
On Error GoTo 0
For Each myShp In ActiveSheet.Shapes
Set SR = Range("B21:AA22")
If Not Intersect(SR, myR) Is Nothing Then
myShp.Delete
End If
Set SR = Nothing
Next
Set myR = Nothing
Excel VBAでの質問です。Excel2007使用です。
ユーザーフォームに制限時間と、制限時間を一時停止させるコマンドボタンを作りたいです。制限時間(60分)は、下ので実行できたのですが、一時停止ができるか、わかりません。
Private Sub 制限時間_Click()
Dim myTime As Date
Dim myLImit As Date
myLImit = Now + TimeValue("1:00:00")
Do While myLImit > Now
DoEvents
myTime = myLImit - Now
分表示.Caption = Minute(myTime) & "分"
秒表示.Caption = Second(myTime) & "秒"
Loop
msgbox "終了です。"
Unload Me
End Sub
できれば、ボタンを押すとmsgbox"一時停止"を表示させ、表示させている間は、制限時間を一時停止させたいです。制限時間、一時停止ができれば、違うコードでもかまいません。
どうぞよろしくお願いします。
お世話になります。
どなたかお助けください。
B7:B11のセルの値で、空ではないものをGlNaviA()に格納して
いき、GlNaviAのUboundを動的に変更しております。
ここで格納された空以外の要素をSub GlNaviに渡しているのですが、
正しく値が渡せていないみたいで、エラーになってしまいます…。
どこかおかしいとこはあるでしょうか。
プログラムは初心者レベルです…。
Option Explicit
Private GlNaviA() As Variant
Public cnt As Integer
Public Sub ABC()
省略…
cnt = 0
For i = 0 To 4
If SH2.Range("B" & i + 7).Value <> "" Then
ReDim Preserve GlNaviA(cnt)
GlNaviA(cnt) = SH2.Range("B" & i + 7).Value
cnt = cnt + 1
End If
Next i
MsgBox GlNaviA(cnt)
省略…
End Sub
Public Sub GlNavi(ByVal f As TextFile)
If UBound(GlNaviA) = 4 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
f.TextWriteLine GlNaviA(2)
f.TextWriteLine GlNaviA(3)
f.TextWriteLine GlNaviA(4)
ElseIf UBound(GlNaviA) = 3 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
f.TextWriteLine GlNaviA(2)
f.TextWriteLine GlNaviA(3)
ElseIf UBound(GlNaviA) = 2 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
f.TextWriteLine GlNaviA(2)
ElseIf UBound(GlNaviA) = 1 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
Else
f.TextWriteLine GlNaviA(0)
End If
End Sub
お世話になります。
どなたかお助けください。
B7:B11のセルの値で、空ではないものをGlNaviA()に格納して
いき、GlNaviAのUboundを動的に変更しております。
ここで格納された空以外の要素をSub GlNaviに渡しているのですが、
正しく値が渡せていないみたいで、エラーになってしまいます…。
どこかおかしいとこはあるでしょうか。
プログラムは初心者レベルです…。
Option Explicit
Private GlNaviA() As Variant
Public cnt As Integer
Public Sub ABC()
省略…
cnt = 0
For i = 0 To 4
If SH2.Range("B" & i + 7).Value <> "" Then
ReDim Preserve GlNaviA(cnt)
GlNaviA(cnt) = SH2.Range("B" & i + 7).Value
cnt = cnt + 1
End If
Next i
MsgBox GlNaviA(cnt)
省略…
End Sub
Public Sub GlNavi(ByVal f As TextFile)
If UBound(GlNaviA) = 4 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
f.TextWriteLine GlNaviA(2)
f.TextWriteLine GlNaviA(3)
f.TextWriteLine GlNaviA(4)
ElseIf UBound(GlNaviA) = 3 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
f.TextWriteLine GlNaviA(2)
f.TextWriteLine GlNaviA(3)
ElseIf UBound(GlNaviA) = 2 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
f.TextWriteLine GlNaviA(2)
ElseIf UBound(GlNaviA) = 1 Then
f.TextWriteLine GlNaviA(0)
f.TextWriteLine GlNaviA(1)
Else
f.TextWriteLine GlNaviA(0)
End If
End Sub