VS2015でExcel VSTO Addinを作成しようとしています。私はVBAを使ってこれを行うことができましたが、VB.NETで自分の足を濡らしたいと思っています。私が直面している問題は、アクティブワークシートを取得して変数に割り当てる方法です。それから、私は以前のテキストに変換した範囲を渡す必要があります。VB.NET Addin現在のワークシートを選択する方法
マクロは基本的に、範囲を選択して両方のリストに表示される項目を強調表示することで、2つのデータリストを比較することができます。
ここでは、ユーザが(正常に動作します)範囲を選択しようとしたときに実行されるコードだ
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Try
Me.Hide()
Dim R As Microsoft.Office.Interop.Excel.Range
Dim A As String
'note how the Application.InputBox brings up different settings to just InputBox
R = Globals.ThisAddIn.Application.InputBox(Prompt:="Please select the reference range", Type:=8)
A = R.Address
Me.TextBox1.Text = A
Me.Show()
Me.TopMost = True
Exit Sub
Catch
MsgBox("Please select a valid range!")
Me.Show()
End Try
End Sub
ここでは、2つを比較する必要がある「検索とハイライト」ボタン、背後にあるコードです重複を強調表示します。しかし、これを実行すると、別のワークブックのセルがハイライト表示されます。これは、最初に開いたと思われるものです。私が現在使用しているワークブックを開いていることを確認するにはどうすればよいですか?
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim xlApp As New Excel.Application
Dim ws As Excel.Worksheet
Dim sheetName As String
Dim cell_1 As Excel.Range
Dim cell_2 As Excel.Range
Dim rng_1 As Excel.Range
Dim rng_2 As Excel.Range
xlApp = GetObject(, "Excel.Application")
ws = xlApp.ActiveSheet
sheetName = ws.Name
rng_1 = ws.Range(Me.TextBox2.Text)
rng_2 = ws.Range(Me.TextBox1.Text)
For Each cell_1 In rng_1
For Each cell_2 In rng_2
If cell_2.Text = cell_1.Text Then
cell_2.Interior.ColorIndex = 6
End If
Next cell_2
Next cell_1
Me.Close()
End Sub
ワークブック名についてわからない場合はどうすればよいですか?私はこれらの関数を特定のワークブックではなく、どのワークブックでも使用できるようにしたい。ワークブックのファイル名を取得する方法はありますか? – pheeper