ラベル VBA の投稿を表示しています。 すべての投稿を表示
ラベル VBA の投稿を表示しています。 すべての投稿を表示

2014年6月23日月曜日

Excel VBAのサンプル


以下は簡単なExcel VBAのサンプルです。




Sub Macro1()

Range("B2").Select
ActiveCell.FormulaR1C1="VBA"
Range("B3").Select

End Sub

2013年6月26日水曜日

VBA マクロでExcel データをAccess へコピーする

以下のサンプルVBAマクロでは、ExcelのデータをAccessデータベースにコピーしています。ExcelのA列、B列のデータを取り出して、Accessデータベースへコピーします。


https://gist.github.com/cofearabi/5864873

2013年6月23日日曜日

(VBA) ExcelのデータをMySQLデータベースに反映させる

以下のVBAスクリプトは、私がExcelで実際に使っているマクロです。Excelファイルで電話帳を作っておき、そのデータをMySQLデータベースに反映させるために使用しています。ExcelファイルのE列に電話番号を入れておきその他の列には名前、住所、郵便番号、Fax番号などを入力してあります。Excelのデータの行のうち、すでに同じ電話番号のレコードがMySQLデータベースに存在するものは、何もしません。Excelに書かれた行のうち、同じ電話番号がMySQLデータベース側に存在しないものだけ、MySQLデータベースへの追加を行っています。なお、MySQLに追加を行うファンクションが定義されておりその中で使用しているMySQL ODBC Driver がインストールされていることが必要です。データベース名はuser、接続ユーザ名はuser、パスワードはuser となっています。 

https://gist.github.com/cofearabi/5845135

2013年5月16日木曜日

VBA で日付を表示

VBA で日付を表示するサンプルです。2013-05-16(木)のような形式で表示します。VBScriptでは動作しませんでした。




Sub hiduke()

  Dim hiduke

  hiduke = Now()

  MsgBox hiduke

  strKyou = Format(hiduke, "yyyy-mm-dd(aaa)")

  MsgBox strKyou

End Sub





2013年5月4日土曜日

VBScriptでODBCデータベースに接続する(2)

VBScriptでODBCデータベースに接続して、テーブルにレコードを追加するサンプルです。データベースは、passwd という名前でODBC登録されており、password という名前のテーブルにレコードを追加しています。








Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
 

    conn.Open "DSN=passwd"
 
    rs.Open "select * from password", conn, 3, 3
 
    rs.Addnew
    rs.Fields(1) = "aaaaaaa"
    rs.Fields(2) = "abcdefg"

    rs.Update
 
 
    rs.Close
    conn.Close

VBScriptでODBCデータベースに接続する

以下は VBScriptでODBCデータベースに接続するサンプルです。以下のサンプルでは予めpasswd という名前でODBC登録をしておく必要があります。





Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
   

    conn.Open "DSN=passwd"
   
    rs.Open "select * from password", conn, 3, 3
   
    rs.MoveFirst

    Do While Not rs.EOF
         MsgBox rs.Fields(0) & "-" & rs.Fields(1) & "-" & rs.Fields(2)
    rs.moveNext

    Loop

2013年5月3日金曜日

VBScript や VBAで Scripting.FileSystemObject を使う

VBScript またはVBAでテキストファイルに書き込む処理を Scripting.FileSystemObjectを使用して行うことができます。以下はサンプルコードです。





Sub aaa()

    strFileName = "D:\sample.txt"
    Set objFileSystem = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFileSystem.CreateTextFile(strFileName)
    objFile.Write ("test1")
    objFile.Write (vbCrLf)
    objFile.Write ("test2")
    objFile.Write (vbCrLf)
    objFile.Write ("test3")

objFile.Close


End Sub






関連webページ

http://chaos-fractal.blogspot.jp/2013/01/vba-access.html

VBA やVBScriptからバッチプログラムを実行するには

VBA やVBScriptからバッチプログラムを実行するには、例えば以下のサンプルのようなコードを使用します。以下のプログラムでは、run?と表示されるので、yesボタンを押すとc:\test.batというバッチプログラムが実行されます。





if msgbox("run ?",vbYesno)=vbYes then

set obj_wsh=createobject("wscript.shell")
aaa=obj_wsh.run("c:\test.bat")

end if

VBA や VBScriptで16進表示

VBAやVBScriptで16進の表示を得るにはHex()関数を使用します。例えば以下のようなプログラムを実行すると25を16進数に変換して19を表示してくれます。

msgbox Hex(25)


2013年5月1日水曜日

Vbscript から Mysql に接続する

Vbscript またはVBAから Mysql に接続するには、まず Connector/ODBC をダウンロードしてインストールしておきます。次に例えば以下のようなコードを使用します。Connector/ODBCは5.2.4ansiをダウンロードしました。




 Set conn = CreateObject("ADODB.Connection")
 Set rs = CreateObject("ADODB.Recordset")
 
  conn.Open "Driver={MySQL ODBC 5.2a Driver};server=192.168.xx.xx;" & _
            "database=stock_db; uid=xxxx; pwd=xxxx;"
 
    rs.Open "select * from stock", conn
 
    rs.MoveFirst

    MsgBox "--" & rs.Fields(0)
    MsgBox "--" & rs.Fields(1)
    MsgBox "--" & rs.Fields(2)
    MsgBox "--" & rs.Fields(3)

    rs.MoveNext
    MsgBox "--" & rs.Fields(0)
    MsgBox "--" & rs.Fields(1)
    MsgBox "--" & rs.Fields(2)
    MsgBox "--" & rs.Fields(3)

    rs.Close
    conn.Close
 
msgbox "end"



-----------------------------------------------------------------------

以下は、MySQL上にテーブルを作成するためのSQL文ですが、この時に最期の行にENGINE=InnoDB DEFAULT CHARSET=sjis という文言を入れないと日本語データを入力した時に文字化けします。


CREATE TABLE log_rec (
  id` int(11) NOT NULL auto_increment,
  access_date date default NULL,
  access_time time default NULL,
  agent varchar(255) default NULL,
  path varchar(100) default NULL,
  ip_address varchar(50) default NULL,
  PRIMARY KEY  (id)
) ENGINE=InnoDB DEFAULT CHARSET=sjis;



2013年1月23日水曜日

VBA Excel イベントの利用(Worksheet_SelectionChange)


Excelで選択範囲を変更した場合に発生するイベントを利用したプログラムです。選択した範囲とD5:E14 という範囲が重なっている領域に、時刻を記入します。




Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim MyRange As Range
    Set MyRange = Application.Intersect(Target, Range("D5:E14"))
    If Not MyRange Is Nothing Then MyRange.Value = Time
    Set MyRange = Nothing

End Sub

2013年1月20日日曜日

VBA Excel イベントの利用

Excel のVBA でイベント利用のサンプルです。ワークシートがアクティブになった時にメッセージを表示するサンプルコードです。






Private Sub Worksheet_Activate()

    MsgBox "ワークシートがアクティブになりました。"

End Sub

VBA Excel フォルダのファイル数を表示

Excel  のVBAで フォルダ内のファイル数を表示するサンプルです。「隠しファイル」や「保護されたオペレーティングシステムファイル」も数えています。





Sub count_file_number()

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    With fso.GetFolder("C:\")
        MsgBox .Files.Count & "個のファイルがあります", vbInformation
    End With
    Set fso = Nothing
End Sub