ハイパーリンクから処理を分岐する
<分類:ハイパーリンク制御>
<使用例:ハイパーリンクがクリックされた座標によって処理を分岐する>
<注意:サンプルデータを作成するプログラムになっていますので、Sheet1は何もデータがないシートをご用意ください>
<プログラム例>
Sub 使用例() Worksheets("Sheet1").Hyperlinks.Add Anchor:=Cells(1, 1), _ Address:=" ", SubAddress:=Worksheets("Sheet1").Name & "!A1", _ TextToDisplay:=Worksheets("Sheet1").Name & "行1列1" Worksheets("Sheet1").Hyperlinks.Add Anchor:=Cells(2, 2), _ Address:=" ", SubAddress:=Worksheets("Sheet1").Name & "!B2", _ TextToDisplay:=Worksheets("Sheet1").Name & "行2列2" Worksheets("Sheet1").Hyperlinks.Add Anchor:=Cells(3, 3), _ Address:=" ", SubAddress:=Worksheets("Sheet1").Name & "!C3", _ TextToDisplay:=Worksheets("Sheet1").Name & "行3列3" End Sub '貼り付け場所注意:VBAProjectのMicrosoft Excel ObjectのThisWorkbookに記述 Private Sub Workbook_SheetFollowHyperlink(ByVal sh As Object, ByVal Target As Hyperlink) Select Case left(Target.Name,6) Case "Sheet1" Select Case ActiveCell.Row & "," & ActiveCell.Column Case 1 & "," & 1 MsgBox "行1列1の処理" MsgBox ActiveCell.Column MsgBox ActiveCell.Row MsgBox ActiveCell.Address Case 2 & "," & 2 MsgBox "行2列2の処理" MsgBox ActiveCell.Column MsgBox ActiveCell.Row MsgBox ActiveCell.Address Case 3 & "," & 3 MsgBox "行3列3の処理" MsgBox ActiveCell.Column MsgBox ActiveCell.Row MsgBox ActiveCell.Address End Select Case Else End Select End Sub
カラムindex値(x座標)をExcelレンジのX部分(アルファベット部分)に変換する
<分類:値変換>
<使用例:カラムindex値(x座標)をExcelレンジのX部分(アルファベット部分)に変換する>
<プログラム例>
Sub 使用例() Dim x As Long Dim s As String 'x座標28はレンジのx部分はAB x = 28 s = 共通_カラムindexをレンジX部分に変換(x) MsgBox ("レンジx座表部分は" & s & "です") End Sub Function 共通_カラムindexをレンジX部分に変換(p1) Dim s As String s = Cells(1, p1).Address s = Replace(s, "1", "") s = Replace(s, "$", "") 共通_カラムindexをレンジX部分に変換 = s End Function
MySQLデータベースと接続してExcelのSheet1の内容をテーブルにINSERTする
<分類:データベース>
<使用例:MySQLデータベースと接続してExcelのSheet1の内容をテーブルにINSERTする>
<MySQLのサンプルデータベースの構成 ※予め作成しておく>
<データベース:dbtest1>
<テーブル:testtbl1>
<テーブルのフィールド:no_id(int型)とnaiyo(varchar型)>
<プログラム例>
Sub Mysql接続INSERT() Dim y As Long Dim strSQL As String Dim strField1 As Long Dim strField2 As String Dim adoCn As Object Dim adoRs As Object Set adoCn = CreateObject("ADODB.Connection") Set adoRs = CreateObject("ADODB.Recordset") 'SERVER=ローカルの場合localhost 'DATABASE= useするデータベース名 'USER= MySQLの管理ユーザ名 'password= MySQLで設定したパスワード adoCn.Open "Driver={MySQL ODBC 8.0 Unicode Driver};" & _ "SERVER=localhost;" & _ "DATABASE=dbtest1;" & _ "USER=root;" & _ "password=xxxxxxxx;" y = 2 Do While Worksheets("sheet1").Cells(y, 1) 'Sheet1の2行目から1カラム目のNO_IDと2カラム目のNAIYOをtesttbl1にINSERTする strField1 = Worksheets("sheet1").Cells(y, 1) strField2 = Worksheets("sheet1").Cells(y, 2) strSQL = "INSERT INTO testtbl1 (NO_ID,NAIYO) VALUES(" & strField1 & ",'" & strField2 & "');" Set adoRs = adoCn.Execute(strSQL) y = y + 1 Loop adoCn.Close Set adoRs = Nothing Set adoCn = Nothing End Sub