Excel巨集指令@ 我的生活.我自己 - 隨意窩

文章推薦指數: 80 %
投票人數:10人

巨集:一連串的執行指令所構成,可以利用Visual Basic程式指令、也可以利用錄製巨集的方式來錄寫指令。

如何錄製巨集: 如果要執行巨集,則需要更改「EXCEL ... 我的生活.我自己幸福有時候是需要一個台階,無論是他下來,還是你上去,只要兩個人的心和眼神在同一個高度和諧地凝視振動...那就是幸福。

日誌相簿影音好友名片 201205310000Excel巨集指令?未分類  巨集:一連串的執行指令所構成,可以利用VisualBasic程式指令、也可以利用錄製巨集的方式來錄寫指令。

如何錄製巨集: 如果要執行巨集,則需要更改「EXCEL選項」\「信任中心」\「信任中心設定」\「巨集設定」 在「檢視」、「巨集」/「錄製巨集」 設定「巨集名稱」、快速鍵(Ctrl+英文鍵),將巨集儲存位置 開始錄製相關動作(錄製是以絕對位址方式來錄製,如果要以相對位址來錄製則要選「以相對位置錄製」) 停止錄製 查看巨集程式碼,並作必要的修正 執行巨集(可以利用「執行巨集」或快速鍵、或利用表單按鈕來執行)如果要編修表單時,可以按下Ctrl+該物件,進行修改。

範例:下載(錄製巨集) C6至C12的數值格式設定「"進貨"#,##0;"出貨"#,##0」 「檢視」、「巨集」、「開始錄製」,並開始執行下列指令 選取範圍C6至C12,並執行「複製」 選取範圍B6至B12,並按下「選擇性貼上」,選擇貼上「值」與運算「加」 選取範圍C6至C12,並按下「Del」,清除儲存格內容 在儲存格C6按一下 停止錄製巨集 在工作表中,產生一個按鈕,並指定該按鈕執行該巨集,並將其按鈕文字改為異動 每次輸入異動資料(正的表示進貨,負的表示出貨),按下按鈕即可執行巨集 VBA簡介:VisualBasicforApplications,利用VB來延申Office的能力。

開啟EXCEL顯示開發人員(在「EXCEL選項」/「常用」中勾選),再撰寫或修改VBA程式。

VBA主要的組成要件:物件,其中包括 屬性:對物件狀態的描述,可以定義物件的特性(大小、顏色、狀態等)。

方法:物件的某些特定動作,可以指定動作的細別內容。

其主要結構如下:物件.方法指定引數1:=xl常數1,指定引數2:=xl常數2,.... 指定引數設定為某些內建常數,每個內建常數前會有關鍵字連接。

EXCEL物件的常數會以xl開始。

VB的陳述式及函數的常數會以vb開始。

Office物件模式的常數會以mso開始。

事件:物件的觸發反應。

EXCEL常用的物件 Workbook活頁簿 Workbooks活頁簿集合 Workbooks("filename")檔名為filename的活頁簿 ActiveWorkbook正在作用中的活頁簿 Sheets活頁簿中所有工作表 Sheets(n)活頁簿中第n張工作表 Worksheet工作表 Worksheets所有工作表(包括圖表) Worksheets("sheet")指表名為sheet工作表 ActiveSheet正在作用中的工作表 Columns("c1:c2")c1至c2欄(其中c1,c2為A~Z或AA~XFD等欄名) Rows("r1:r2")r1至r2列(其中r1,r2為1~1048576等列名 Range("x1:x2")x1至x2間的儲存格(其中x1,x2為儲存格位址名稱) cells(i,j)儲存格(第i列、第j行) ActiveCell目前的儲存格 Selection目前所選取的物件 範例: Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold=True Worksheets("Sheet1").Cells.ClearContents Worksheets("Sheet1").Rows(1).Font.Bold=True Range("1:1,3:3,8:8") Worksheets("Sheet1").Cells(6,1).Value=10 Worksheets("Sheet1").[A1:B5].ClearContents ActiveCell.Offset(1,3).Font.Underline=xlDouble 活頁簿常用屬性: ActiveWorkBook.Name目前活頁簿的名稱 ActiveWorkBook.Save儲存目前的活頁簿 ActiveWorkBook.SaveAsFilename:="filename"另儲新檔 WorkBooks.Add新增活頁簿 WorkBooks(i).Close[SaveChange,Filename,RouteWorkbook]關閉指定的第i個活頁簿 SaveChange:=True改變儲存 SaveChange:=False不會改變儲存 SaveChange省略時,會出現對話方塊 filename:="檔名" WorkBooks.Open"filename"開啟一個活頁簿 Application.Windows所有活頁簿視窗 WorkBooks.Count活頁簿的數量 WorkBooks.Item(Index)傳回單一活頁簿,由索引值指定 工作表常用屬性: Worksheets.Add[Before,After,Count,Type]新增工作表 Before:=Worksheets(n)出現於某工作表之前 After:=Worksheets(n)出現於某工作表之後 Count:=n新增工作表數量 Type:=xlWorksheet(工作表)或xlChart(圖表) WorkSheets.Name工作表名稱 WorkSheets("Sheet1").Activate設定工作表為目前作用的功作表 儲存格常用屬性: Rows.RowHeight指定範圍內的所有列高 Columns.ColumnsWidth:指定範圍內的所欄寬 expression.NumberFormatLocal以本地的數字格式 Range.CurrentRegion目前區域是指以任意空白列及空白欄的組合為邊界的範圍 範例: Worksheets("Sheet1").Activate ActiveCell.CurrentRegion.Select expression.Address(RowAbsolute,ColumnAbsolute,ReferenceStyle,External,RelativeTo)以參照的方式 RowAbsolute為True,則用列的絕對位址 ColumnAbsolute為True,則用欄的絕對位址 ReferenceStyle預設值為xlA1,如為xlR1C1則為R1C1的表達方式 expression.count傳回範圍的數量(可以是欄數、列數或儲存格數量) expression.Item(RowIndex,ColumnIndex)代表相對於指定之範圍某個位移距離的範圍。

expression.value傳回或設定物件的值 expression.Formula傳回或設定物件的公式,代表A1樣式註解以及巨集語言中的物件公式。

範例:Worksheets("Sheet1").Range("A1").Formula="=$A$4+$Aid=mce_marker0" expression.FormulaR1C1傳回或設定物件的公式,並以巨集語言中的R1C1樣式標記法表示範例:Worksheets("Sheet1").Range("B1").FormulaR1C1="=SQRT(R1C1)" expression.Text傳回或設定物件的文字 範例: Setc=Worksheets("Sheet1").Range("B14") c.Value=1198.3 c.NumberFormat="$#,##0_);($#,##0)" MsgBoxc.Value MsgBoxc.Text 常用方法: Range.Select方法/Selection屬性設定目前選取的範圍/使用目前所選取的範圍 範例: SubMacro1() Sheets("Sheet1").Select Range("A1").Select ActiveCell.FormulaR1C1="Name" Range("B1").Select ActiveCell.FormulaR1C1="Address" Range("A1:B1").Select Selection.Font.Bold=True EndSub expression.Copy將目前所選取的物件復製至剪貼簿 expression.Cut將目前所選取的物件剪下 expression.Delete將目前所選取的物件刪除 expression.Paste將剪貼簿的內容貼上 範例: SubCopyRow() Worksheets("Sheet1").Rows(1).Copy Worksheets("Sheet2").Select Worksheets("Sheet2").Rows(1).Select Worksheets("Sheet2").Paste EndSub expression.RasteSpecial(Paste,Operation,SkipBlanks,Transpose) 範例: WithWorksheets("Sheet1") .Range("C1:C5").Copy .Range("D1:D5").PasteSpecial_ Operation:=xlPasteSpecialOperationAdd EndWith Range.Activate目前的儲存格 Range.Clear清除資料 Range.ClearContents清除資料內容 Range.ClearFormats清除資料格式 Range.ClearComments清除註解 expression.AutoFit:自動調整列高和欄寬 Range.FillDown、Range.FillUp、Range.FillLeft、Range.FillRight填滿 Range.Offset(RowOffset,ColumnOffset)指定區域的位移列與行 範例: SubMoveActive() Worksheets("Sheet1").Activate Range("A1:D10").Select ActiveCell.Value="MonthlyTotals" ActiveCell.Offset(0,1).Activate EndSub 程式語法: Dim陳述式(變數)Dimvarname[As[New]type]type包括Byte、Boolean、Integer、Long、Single、Double、Date、String、Object等 Set陳述式(物件)Setobjectvar={[New]objectexpression|Nothing}例:SetRangeA=Range("A1:B2") 範例: SubRandom() DimmyRangeAsRange SetmyRange=Worksheets("Sheet1").Range("A1:D5") myRange.Formula="=RAND()" myRange.Font.Bold=True EndSub With多種屬性設定With物件.屬性1=設定值.屬性2=設定值....EndWith 範例: SubAddNew() SetNewBook=Workbooks.Add WithNewBook .Title="AllSales" .Subject="Sales" .SaveAsFilename:="Allsales.xls" EndWith EndSub Array陣列Array(Range1,Range2,....) 範例: SubSeveral() Worksheets(Array("Sheet1","Sheet2","Sheet4")).Select EndSub InputBox函數InputBox("文字說明",[,title][,default][,xpos][,ypos][,helpfile,context]) MsgBox函數MsgBox"文字說明" Union將多個範圍合併成單一Range物件Union(Range1,Range2,...) 範例: SubMultipleRange() Dimr1,r2,myMultipleRangeAsRange Setr1=Sheets("Sheet1").Range("A1:B2") Setr2=Sheets("Sheet1").Range("C3:D4") SetmyMultipleRange=Union(r1,r2) myMultipleRange.Font.Bold=True EndSub For...Next陳述式Forcounter=starttoend[stepstepvalue][statements][ExitFor][statements]Next[counter] 範例: SubCycleThrough() DimCounterAsInteger ForCounter=1To20 Worksheets("Sheet1").Cells(Counter,3).Value=Counter NextCounter EndSub ForEach...Next陳述式ForEachelementIngroup[statements][ExitFor][statements]Next[element] 範例: SubApplyColor() ConstLimitAsInteger=25 ForEachcInRange("MyRange") Ifc.Value>LimitThen c.Interior.ColorIndex=27 EndIf Nextc EndSub Do...Loop陳述式Do[{While|Until}condition][statements][ExitDo][statements]Loop或Do[statements][ExitDo][statements]Loop[{While|Until}condition] If...Then...Else...陳述式IfconditionThen[statements][Elseelsestatements]或IfconditionThen[statements][ElseIfcondition-nThen[elseifstatements]...[Else[elsestatements]]EndIf  培迪/Xuite日誌/回應(0)/引用(0)原來感激會讓愛持續好久好久…....|日誌首頁|ExcelVBA常用語句300上一篇原來感激會讓愛持續好久好久…...下一篇ExcelVBA常用語句300回應 【請點我】旅遊打卡享樂趣 【2012臺灣OTOP遊程大賞】9/10 『瘋旅遊全球大暴走!』串聯至7/31 【17MOVIE活動】貼紙串聯 「團結就是力量!讀好書送防毒!」 【拒絕不當醫藥廣告當個聰明消費者】 加我為好友日誌相簿影音 我的相簿 HiNet部落格背景音樂功能下架



請為這篇文章評分?