変数を配列に格納する時に、二つの条件を指定することはできますか?
VBAです。
Private Sub test()
Dim i As Long
Dim Str As String
Dim tmp As Variant
Str = "a,i,u-e-o"
tmp = Split(Str, ",") '配列に格納する
For i = LBound(tmp) To UBound(tmp)
Debug.Print tmp(i)
Next i
End Sub
の場合、結果が
a
i
u-e-o
になってしまいます。
tmp = Split(Str, "," or "-")
のようなことをして
a
i
u
e
o
と表示させたいです。
"a,i,u-e-o"を"a,i,u,e,o"にすることはできません。ご教授よろしくお願いします。
変数を配列に格納する時に、二つの条件を指定することはできますか?
VBAです。
Private Sub test()
Dim i As Long
Dim Str As String
Dim tmp As Variant
Str = "a,i,u-e-o"
tmp = Split(Str, ",") '配列に格納する
For i = LBound(tmp) To UBound(tmp)
Debug.Print tmp(i)
Next i
End Sub
の場合、結果が
a
i
u-e-o
になってしまいます。
tmp = Split(Str, "," or "-")
のようなことをして
a
i
u
e
o
と表示させたいです。
"a,i,u-e-o"を"a,i,u,e,o"にすることはできません。ご教授よろしくお願いします。
Sub test1()
Dim objIE As InternetExplorer
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "http://www.goo.ne.jp/"
Do While objIE.Busy = True Or objIE.ReadyState <> 4
DoEvents
Loop
Debug.Print objIE.Navigate
Set objIE = Nothing
End Sub
////////////////////////////////////////////////
をやろうとすると、
Debug.Print objIE.Navigate
の部分で、「引数は省略できません。」とエラーになります。
どう修正すればいいか教えてください。
("http://www.goo.ne.jp/"はダミーです)
前回以下のようなコードを教えていただきましたが、この変換を複数列で使えるようにするにはどうしたらいいのでしょうか?
D,G,N,Q,X,AA,の列に効かせたいのですが。
Private Sub worksheet_change(ByVal Target As Range)
If Intersect(Target, Columns(1)) Is Nothing Or Selection.Count <> 1 Then Exit Sub
Dim str As String
str = Target
Application.EnableEvents = False
If Target <> "" Then
If Len(str) = 7 Then
Target = Left(str, 5) & "A" & Mid(str, 6, 1) & "-" & Right(str, 1)
Else
Target = Left(str, 5) & "A" & Mid(str, 6, 2) & "-" & Right(str, 1)
End If
End If
Application.EnableEvents = True
End Sub
いつもお世話になっています。
下記内容の変更をしたいのですが、自分ではうまくいかず、お力をお貸しください。
よろしくお願いします。
一枚のデータシートと一枚の入力用フォームがあります。
入力フォームのスピンボタンのNOをキーにして、データシートのレコードを一件ずつ切り替えて、表示させるようにしています。
さてデータシートのオートフィルターでフィルターをかけた時に、それにあわせて、スピンボタンのNOを飛ばすようにしたいのですが、どのように修正していいか、わかりません。
現状ですと、下記プロシージャですが、いまのままだと、スピンボタンの値が一つずつしかかわりません。
'スピンボタンの値が変わったらテキストボックスに反映
Private Sub SpinButton1_Change()
TextBox1.Value = SpinButton1.Value
Call hyouji
End Sub
Private Sub hyouji()
'データを検索して表示する
Dim fRange As Range
Dim fRow As Long
Set fRange = Sheets("data").Columns(3).Find(what:=TextBox1.Value, _
LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByRows)
If (fRange Is Nothing) Then '
MsgBox "Noがみつかりません", vbExclamation
Exit Sub
End If
fRow = fRange.Row '検索されたNoの行位置を求める
With Worksheets("data")
TextBox2.Value = .Cells(fRow, 4).Value
TextBox3.Value = .Cells(fRow, 5).Value
TextBox4.Value = .Cells(fRow, 6).Value
TextBox5.Value = .Cells(fRow, 7).Value
TextBox6.Value = .Cells(fRow, 8).Value
End With
SpinButton1.SetFocus
End Sub
※現物ファイルを下記に投稿(No5643)させていただきました。見ていただけると幸いです。
http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi
OSは、XP
Excelは、2003 を使用しています。
ユーザーフォームで、ListBoxの行数取得のところが上手く行かずに困っています。
**************
Private Sub btnSalesDelete_Click()
'lstinfoにおいて、どの行も選択されていなければ、終了
If lstInfo.ListIndex = -1 Then Exit Sub
Dim res As Integer
Dim Msg As String, Title As String
Msg = "伝票番号:" & lstInfo.Value & " を削除します。よろしいですか?"
Title = "確認"
res = MsgBox(Msg, vbYesNo + vbExclamation + vbDefaultButton2, Title)
If res = vbNo Then Exit Sub
'シート「売上基本情報」の該当行の「削除」列に1を代入
Dim TargetRow As Integer
TargetRow = lstInfo.Value + 1
Worksheets("売上基本情報").Cells(TargetRow, 5).Value = 1
'シート「売上明細」の該当行の「削除」列に1を代入
Dim c As Integer
c = lstInfoMeisai.ListCount '明細行の行数をcに代入
Dim i As Integer
Dim r As Integer
For i = 0 To c - 1
r = lstInfoMeisai.List(i, 0) '←←←ここで実行エラー13 型が一致しません になります。
Worksheets("売上明細").Cells(r + 1, 15).Value = 1
Next
'lstinfoから、行を削除
lstInfo.RemoveItem lstInfo.ListIndex
'lstinfomeisaiのリストをクリア
lstInfoMeisai.Clear
End Sub
*****************
上記で実行すると、lstInfoのListCountと同じ数字を、lstInfoMeisaiの方にも代入されます。
実際、lstInfoMeisaiのListCountが 12、lstInfoのListCountが 3 の場合、
rが4になった時、実際にはそのListCountにがデータがないので、””を返してしまい、
実行エラー13 型が一致しません とデバックになってしまいます。
説明が上手くなくて申し訳ありませんが、どなたか修正の仕方を教えていただけないでしょうか?
よろしくお願い致します。
OSは、XP
Excelは、2003 を使用しています。
ユーザーフォームで、ListBoxの行数取得のところが上手く行かずに困っています。
**************
Private Sub btnSalesDelete_Click()
'lstinfoにおいて、どの行も選択されていなければ、終了
If lstInfo.ListIndex = -1 Then Exit Sub
Dim res As Integer
Dim Msg As String, Title As String
Msg = "伝票番号:" & lstInfo.Value & " を削除します。よろしいですか?"
Title = "確認"
res = MsgBox(Msg, vbYesNo + vbExclamation + vbDefaultButton2, Title)
If res = vbNo Then Exit Sub
'シート「売上基本情報」の該当行の「削除」列に1を代入
Dim TargetRow As Integer
TargetRow = lstInfo.Value + 1
Worksheets("売上基本情報").Cells(TargetRow, 5).Value = 1
'シート「売上明細」の該当行の「削除」列に1を代入
Dim c As Integer
c = lstInfoMeisai.ListCount '明細行の行数をcに代入
Dim i As Integer
Dim r As Integer
For i = 0 To c - 1
r = lstInfoMeisai.List(i, 0) '←←←ここで実行エラー13 型が一致しません になります。
Worksheets("売上明細").Cells(r + 1, 15).Value = 1
Next
'lstinfoから、行を削除
lstInfo.RemoveItem lstInfo.ListIndex
'lstinfomeisaiのリストをクリア
lstInfoMeisai.Clear
End Sub
*****************
上記で実行すると、lstInfoのListCountと同じ数字を、lstInfoMeisaiの方にも代入されます。
実際、lstInfoMeisaiのListCountが 12、lstInfoのListCountが 3 の場合、
rが4になった時、実際にはそのListCountにがデータがないので、””を返してしまい、
実行エラー13 型が一致しません とデバックになってしまいます。
説明が上手くなくて申し訳ありませんが、どなたか修正の仕方を教えていただけないでしょうか?
よろしくお願い致します。