« ICOCA & Suica | Main | 大量のメール »

2004.08.01

Excelマクロの記録

 ExcelでVBAを使用して定型処理を作成する場合、もちろん1からガリガリとコードを記述するという手もありますが、「マクロの記録」を行って操作手順をコード化してそれを元に手を加えるっていう手もあるんですね(記録されたマクロのパラメータ部分をダイアログなどで入力できるようにしたりetc.)。
 試しにグラフの散布図を作成してみたところ、


Columns("A:B").Select
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B10"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"

ってコードが得られました。
 また、Accessからデータを取り込む処理は、

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=AccessTestDB;DBQ=D:\data\vbatest\testdb.mdb;DefaultDir=D:\data\vbatest;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTim" _
), Array("eout=5;")), Destination:=Range("A1"))
.CommandText = Array( _
"SELECT TESTTBL.Col1, TESTTBL.Col2, TESTTBL.Col3, TESTTBL.Col4" & Chr(13) & "" & Chr(10) & "FROM `D:\data\vbatest\testdb`.TESTTBL TESTTBL" & Chr(13) & "" & Chr(10) & "WHERE (TESTTBL.Col1=100)" & Chr(13) & "" & Chr(10) & "ORDER BY TESTTBL.Col2" _
)
.Name = "AccessTestDB からのクエリ_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

って感じになりました。

 しかし、これに頼りすぎると、それぞれの値の意味を理解することなく突き進んでしまいそうです(^^;;

|

« ICOCA & Suica | Main | 大量のメール »

パソコン・インターネット」カテゴリの記事

Comments

初めまして。
ExcelVBAでマクロ組み始めて早7年。
相変わらず、マクロの記録に頼ることも多々あります(笑)
こんなに便利な機能はありません( ̄ー ̄)
ちゃんとコードを記述した方が、スッキリと少ステップで完結してしまったりすることもあるのですが・・・。
無精をしないでちゃんと調べないとダメだなぁって思う瞬間です(笑)

Posted by: penguin555 | 2004.08.05 at 15:46

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/1098353

Listed below are links to weblogs that reference Excelマクロの記録:

« ICOCA & Suica | Main | 大量のメール »