G2に=DATE(C1,G1,1)で日付を取得し和暦表示で「H25年03月」とセルの書式設定で
しているのですが、これをMsgBoxに同じように表示させたいのですが、お教え願えま
せんでしょうか。
Windows7 Office2010
Dim ret As Integer
ret = MsgBox(ActiveSheet.Range("G2").Value & "の勤務割表を編集データを元に作成します。よろしいですか?", _
vbOKCancel + vbQuestion, "作成")
Select Case ret
Case vbOK
処理のコード文
Case vbOKCancel
Exit Sub
End Select
Excel2007でマクロ作成中の初心者です。
以下のマクロを実行すると、最終行でコンパイルエラーがでて
「参照が不正または不完全です」と表示され削除ができません。
どうしたら、削除できるでしょうか。
Private Sub 顧客削除_Click()
Dim i As Integer
Dim btn
Dim name As String
With 顧客リスト
For i = 0 To .ListCount - 1
If .Selected(i) Then
name = .list(i) '選択されたリストを変数に格納
btn = MsgBox("本当に、" & name & "さんを削除していいですか?", _
vbYesNo + vbQuestion, "削除の確認をする")
End If
Next i
End With
If btn = vbNo Then
Exit Sub
End If
'Worksheets(Mid(.list(.ListIndex - 0), InStr(.list(.ListIndex - 0), " ") + 1)).Delete
'ActiveWorkbook.Sheet.[(List(i))].Delete
'ActiveWorkbook.Sheets(name).Delete
Worksheets(Split(.list(.ListIndex - 0), " ")(1)).Delete '
End Sub
下記のようにTextBox1に入力されているとします。
そこで、'<TD><a href="main.py?qtype=userpage&teamnum=162&username=KOTOKO"> KOTOKO </a> </TD>'と書かれた行から、
<a></a>タグで囲まれた' KOTOKO'という文字を検索して、
'<TD> 18 </TD>'と書かれた文字の18と、
<a></a>タグで囲まれた'11346595'と、
<a></a>タグで囲まれた'16184'を取得してMsgBoxに表示したいのですが、
どうすれば出来ますでしょうか?
(18、11346595、16184という数字は変動します。)
いくら検索しても思うようなものが見つかりませんでした。
因みに、大本のhtmlソースはこちらです。
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162
↓これがTextBox1に入力されている値です。
<TR bgcolor=#ffffff>
<TD> 18 </TD>
<TD><a href="main.py?qtype=userpage&teamnum=162&username=KOTOKO"> KOTOKO </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=11346595" target="_blank"> 11346595 </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=16184&t=wus&bg=3" target="_blank"> 16184 </a> </TD>
</TR>
<TR bgcolor=#dcdcdc>
<TD> 19 </TD>
<TD><a href="main.py?qtype=userpage&teamnum=162&username=yukichan"> yukichan </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=yukichan&pts=10625127" target="_blank"> 10625127 </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=yukichan&pts=4769&t=wus&bg=3" target="_blank"> 4769 </a> </TD>
</TR>
↓これがVBのコード
Public Class Form1
Dim url As String
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
url = "http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162"
WebBrowser1.Navigate(url)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show()
Form2.TextBox1.Text = WebBrowser1.Document.Body.OuterHtml
Dim r As New System.Text.RegularExpressions.Regex("KOTOKO ", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
'TextBox1.Text内で正規表現と一致する対象を1つ検索
Dim m As System.Text.RegularExpressions.Match = r.Match(Form2.TextBox1.Text)
'次のように一致する対象をすべて検索することもできる
'Dim mc As System.Text.RegularExpressions.MatchCollection = _
' r.Matches(TextBox1.Text)
While m.Success
'一致した対象が見つかったときキャプチャした部分文字列を表示
MsgBox(m.Value)
'次に一致する対象を検索
m = m.NextMatch()
End While
End Sub
End Class
下記のようにTextBox1に入力されているとします。
そこで、'<TD><a href="main.py?qtype=userpage&teamnum=162&username=KOTOKO"> KOTOKO </a> </TD>'と書かれた行から、
<a></a>タグで囲まれた' KOTOKO'という文字を検索して、
'<TD> 18 </TD>'と書かれた文字の18と、
<a></a>タグで囲まれた'11346595'と、
<a></a>タグで囲まれた'16184'を取得してMsgBoxに表示したいのですが、
どうすれば出来ますでしょうか?
(18、11346595、16184という数字は変動します。)
いくら検索しても思うようなものが見つかりませんでした。
因みに、大本のhtmlソースはこちらです。
http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162
↓これがTextBox1に入力されている値です。
<TR bgcolor=#ffffff>
<TD> 18 </TD>
<TD><a href="main.py?qtype=userpage&teamnum=162&username=KOTOKO"> KOTOKO </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=11346595" target="_blank"> 11346595 </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=KOTOKO&pts=16184&t=wus&bg=3" target="_blank"> 16184 </a> </TD>
</TR>
<TR bgcolor=#dcdcdc>
<TD> 19 </TD>
<TD><a href="main.py?qtype=userpage&teamnum=162&username=yukichan"> yukichan </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=yukichan&pts=10625127" target="_blank"> 10625127 </a> </TD>
<TD><a href="http://fah-web2.stanford.edu/awards/cert.php?u=yukichan&pts=4769&t=wus&bg=3" target="_blank"> 4769 </a> </TD>
</TR>
↓これがVBのコード
Public Class Form1
Dim url As String
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
url = "http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=162"
WebBrowser1.Navigate(url)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show()
Form2.TextBox1.Text = WebBrowser1.Document.Body.OuterHtml
Dim r As New System.Text.RegularExpressions.Regex("KOTOKO ", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
'TextBox1.Text内で正規表現と一致する対象を1つ検索
Dim m As System.Text.RegularExpressions.Match = r.Match(Form2.TextBox1.Text)
'次のように一致する対象をすべて検索することもできる
'Dim mc As System.Text.RegularExpressions.MatchCollection = _
' r.Matches(TextBox1.Text)
While m.Success
'一致した対象が見つかったときキャプチャした部分文字列を表示
MsgBox(m.Value)
'次に一致する対象を検索
m = m.NextMatch()
End While
End Sub
End Class
vbの超初心者なのですが、フォームにコマンドボタンを何度か設置したら
Private Sub Button1_Click(sender As System.Object,・・・
というのと
Private Sub Button1_Click_1(sender As System.Object,・・・
というのが出来上がっていて、コマンドボタンをクリックすると
Private Sub Button1_Click_1
のほうのコードが実行されるのですが、
Private Sub Button1_ClickとPrivate Sub Button1_Click_1
の違いはなんでしょうか?
Private Sub Button1_Clickは、どのコマンドボタンを押せば実行されるのでしょうか?
こんにちは、
エクセルvba超初心者で修行中のものです。
別ブック間のすべてのシートのある列を比較し、同じ値に色を付けるというマクロを
作りたいのですが、
下記のようにシートを限定する→With Workbooks("マクロ1.xls").Sheets("Sheet1")
とうまくいくのですが、それぞれのブックのすべてのシートに対して比較をしたいので
With Workbooks("マクロ1.xls").worksheets
と書くと
コンパイルエラー、メソッドまたはデータメンバーが見つかりません
と出てきてSet search1 = .Range(.Range("A2"), .Range("A" & Rows.Count).End(xlUp))
このなかの左から二つ目のRangeの色が反転します。
vba に関する勉強不足は重々承知しておりますが、意味が理解できません。
どうすれば、シート全体を検索できるようになるのでしょうか?
ぜひお力をお貸しください
よろしくお願いいたします。
Sub search()
Dim search1 As Range, search2 As Range, s As Range, ss As Range
With Workbooks("マクロ1.xls").Sheets("Sheet1")
Set search1 = .Range(.Range("A2"), .Range("A" & Rows.Count).End(xlUp))
End With
With Workbooks("まくろ2.xls").Sheets("Sheet1")
Set search2 = .Range(.Range("i2"), .Range("i" & Rows.Count).End(xlUp))
End With
For Each s In search1
For Each ss In search2
If s.Value = ss.Value Then
s.Interior.ColorIndex = 6
ss.Interior.ColorIndex = 6
End If
Next ss
Next s
End Sub
Excel2007でマクロ作成の初心者です。
リストボックスの選択項目のワークシートを削除したいのですが、
「インデックスが有効範囲にありません。」のエラーが発生し、
先に進めません。どうしたらよろしいでしょうか?
’---------------------
Private Sub 顧客削除_Click()
Application.ScreenUpdating = False
Unload Me
Unload DS請求フォーム
Dim i As Integer
With 顧客リスト
For i = 0 To .ListCount - 1
If .Selected(i) Then
' Worksheets(.list(.ListIndex)).Delete
Worksheets(Split(.list(.ListIndex - 0), " ")(1)).Activate '←ここでエラー発生
ActiveSheet.Delete
End If
Next i
End With
MsgBox "選択の顧客を削除しました。"
End Sub
’-------------------------
Private Sub UserForm_Initialize()
Workbooks("請求.xls").Activate
Dim i As Integer
Const EXCEPT_NAME = "経理●一覧●基本●"
For i = 1 To Worksheets.Count
If InStr(EXCEPT_NAME, Worksheets(i).Name & "●") = 0 Then
顧客リスト.AddItem i & " " & Worksheets(i).Name
End If
Next i
End Sub
’----------------------
Excel2007でマクロ作成の初心者です。
リストボックスで選択した、リスト項目のワークシートを表示したいのですが、
「インデックスが有効範囲にありません」というエラーがでます。
どうしたらよろしいでしょうか? よろしくお願いします。
’--------------------------------
Private Sub 顧客リスト_Click()
With 顧客リスト
Worksheets(.list(.ListIndex - 0)).Activate’----ここでエラー発生します
End With
End Sub
-----------------------------
Private Sub UserForm_Initialize()
Workbooks("請求.xls").Activate
Dim i As Integer
Const EXCEPT_NAME = "経理●一覧●基本●"
For i = 1 To Worksheets.Count
If InStr(EXCEPT_NAME, Worksheets(i).Name & "●") = 0 Then
顧客リスト.AddItem i & " " & Worksheets(i).Name
End If
Next i
End Sub
’---------------------------
Excel2007でマクロ作成の初心者です。
以下のコードでリストボックスに顧客名前を、表示しています。
しかし、ボックスにずらりと名前が表示され見にくいです。
できれば、その名前の列の前列に、名前の順の連番をつけたいのですが
できるでしょうか。名前の数は変動するので、番号も応じて変動します。
よろしくお願いします。
Private Sub UserForm_Initialize()
Workbooks("請求.xls").Activate
Dim i As Integer
Const EXCEPT_NAME = "経理●一覧●基本●"
For i = 1 To Worksheets.Count
If InStr(EXCEPT_NAME, Worksheets(i).Name & "●") = 0 Then
顧客リスト.AddItem Worksheets(i).Name
End If
Next i
End Sub