Koleksi Macro Dasar Excel

Download Koleksi Macro Dasar Excel

Post on 02-Jun-2018

215 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

<ul><li><p>8/10/2019 Koleksi Macro Dasar Excel</p><p> 1/6</p><p>Koleksi Macro Dasar Excel</p><p>Tulisan berikut ini merupakan terjemahan darihttp://www.panzerbasics.com/index_files/97-</p><p>excel/basic-macros.htm</p><p>Sebagai pemrogram VBA pemula, saya perlu mengumpulkan macro yang saya buat atau temukan.Menaruhnya di Internet hanyalah sebuah langkah lanjutan kecil.</p><p>Jika anda menjalankan sebuah macro, aksinya tidak bisa dibatalkan. Menggunakan macro yang</p><p>disediakan di sini adalah urusan anda sendiri.</p><p>Camkanlah bahwa macro bisa sangat bermanfaat, namun juga bisa berbahaya jika berasal dari</p><p>sumber yang tidak dikenal.</p><p>Code-code macro dasar berikut ini berasal dari seantero Internet atau dibuat oleh saya sendiri. Oleh</p><p>karena sangat umum dan dasar, saya tidak mencantumkan sumbernya. Jika seseorang mengenalnya</p><p>sebagai buatannya dan ingin namanya dicantumkan atau code dihapus, silahkan menghubungi saya.</p><p>Macro yang disediakan berikut ini adalah pilihan saya dan bisa digunakan sebagai permulaan atau</p><p>untuk membantu anda pada proyek-proyek dasar. Gunakan imajinasi anda untuk menyesuaikannya</p><p>dengan proyek anda, atau lakukan pencarian lebih lanjut di Internet.</p><p>Code-code sudah saya coba dan verifikasi untuk dijalankan pada Excel 2007. Harap diingat bahwakita bisa mencapai suatu tujuan dengan cara yang berbeda.</p><p>Macro umumnya dimulai dengan baris: "Sub Name()", dimana Name bisa diganti dengan nama yang</p><p>ingin anda gunakan. Macro diakhiri dengan baris "End Sub".</p><p>Untuk kejelasan dan kemudahan dalam pemakaian yang berbeda, saya tidak mencatumkan baris-</p><p>baris ini lagi kecuali untuk alasan tertentu.</p><p>Jika "Sub" diganti dengan "Function", code akan berjalan sama saja, namun macro tidak tampak</p><p>pada daftar macro yang tersedia. Kelemahan cara ini adalah function akan tampak dalam daftar</p><p>function. Jika "Private" ditambahkan sebelum "Sub" atau "Function", macro hanya bisa dipanggil dari</p><p>module yang sama, dan juga tidak muncul dalam daftar.</p><p>Activate</p><p>Sub Worksheet_Activate()</p><p>MsgBox "Hello"</p><p>End Sub</p><p>Active Cell, Position myRow = ActiveCell.Row</p><p>myCol = ActiveCell.Column</p>http://www.panzerbasics.com/index_files/97-excel/basic-macros.htmhttp://www.panzerbasics.com/index_files/97-excel/basic-macros.htmhttp://www.panzerbasics.com/index_files/97-excel/basic-macros.htmhttp://www.panzerbasics.com/index_files/97-excel/basic-macros.htmhttp://www.panzerbasics.com/index_files/97-excel/basic-macros.htmhttp://www.panzerbasics.com/index_files/97-excel/basic-macros.htm</li><li><p>8/10/2019 Koleksi Macro Dasar Excel</p><p> 2/6</p><p>MsgBox myRow &amp; "," &amp; myCol</p><p>Active Cell, Selection</p><p>to far left</p><p>Selection.End(xlToLeft).Select</p><p>OR</p><p>Range("A" &amp; ActiveCell.Row).Select</p><p>Active Cell in top left</p><p>of screen</p><p>With ActiveWindow</p><p>.ScrollColumn = ActiveCell.Column</p><p>.ScrollRow = ActiveCell.Row</p><p>End With</p><p>Active Cell, Value MsgBox ActiveCell.Value</p><p>Auto Run</p><p>Sub Auto_Open()</p><p>MsgBox "Hello"</p><p>End Sub</p><p>Auto Run(2)</p><p>Sub Workbook_Open()</p><p>MsgBox "Hello"</p><p>End Sub</p><p>Auto Save</p><p>This workbook:' = Autorun</p><p>Sub Workbook_Open()</p><p>Call SaveMe</p><p>End Sub</p><p>In Module:</p><p>Sub SaveMe()</p><p>ThisWorkbook.Save</p><p>Application.OnTime Now + Timeserial(0,15,0),"SaveMe" '</p><p>Timeserial=(h,m,s)End Sub</p><p>Available Row (next)Range("a65536").End(xlUp).Offset(1, 0).Select</p><p>Call -</p><p>Running a</p><p>subroutine</p><p>Call Macro2 'This calls for Macro2 to run within your Macro</p></li><li><p>8/10/2019 Koleksi Macro Dasar Excel</p><p> 3/6</p><p>Case Title</p><p>Dim cell As Range</p><p>For Each cell In Selection.Cells</p><p>If cell.HasFormula = False Then</p><p>cell = Application.Proper(cell)</p><p>End IfNext</p><p>Case Upper / Lower</p><p>Dim cell As Range</p><p>For Each cell In Selection.Cells</p><p>If cell.HasFormula = False Then</p><p>cell = UCase(cell)</p><p>End If</p><p>Next</p><p>Column Letters</p><p>Dim MyColumn As String, Here As String</p><p>Here = ActiveCell.Address</p><p>MyColumn = Mid(Here, InStr(Here, "$") + 1, InStr(2, Here, "$") - 2)</p><p>MsgBox MyColumn</p><p>Counting Rows &amp;</p><p>Columns</p><p>myRows = Selection.Rows.Count</p><p>myColumns = Selection.Columns.Count</p><p>MsgBox "Rows = " &amp; myRows &amp; vbCrLf &amp; "Colums = " &amp; myColumns</p><p>Carriage Return MsgBox "Line 1" &amp; vbCrLf &amp; "Line 2"</p><p>Copy Range (1) Sheet1.Range("A1:C1").Copy Destination:=Sheet2.Range("A1")</p><p>Copy Range (2)</p><p>Range("A1:B1").Copy</p><p>Range("A2").PasteSpecial Paste:=xlPasteValues</p><p>Application.CutCopyMode = False</p><p>Counter</p><p>Range("A1") = Range("A1") + 1</p><p>OR</p><p>myCount = Range("a1") + 1</p><p>Range("a1") = myCount</p><p>Current DatePrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As</p><p>Boolean)</p><p>Range("A1") = Now</p></li><li><p>8/10/2019 Koleksi Macro Dasar Excel</p><p> 4/6</p><p>End Sub</p><p>Delete Empty Rows</p><p>firstRow = Selection.Row</p><p>lastRow = Selection.Row + Selection.Rows.Count</p><p>For rownumber = lastRow To firstRow Step -1If Application.WorksheetFunction.CountA(Rows(rownumber)) = 0 _</p><p>Then Rows(rownumber).Delete</p><p>Next rownumber</p><p>Error Trapping</p><p>On Error Resume Next</p><p>OR</p><p>Sub Name()</p><p>On Error Goto ErrorHandler1</p><p>... more lines of code</p><p>Exit Sub</p><p>ErrorHandler1:</p><p>... code specifying action on error</p><p>End Sub</p><p>File Name &amp; Path Range("A1") = Application.ActiveWorkbook.FullName</p><p>For, Next Loop</p><p>Goto (Code)</p><p>Input Box</p><p>Dim MyInput</p><p>MyInput = InputBox("Enter something")</p><p>Range("A1") = MyInput</p><p>If, Then Statement</p><p>If Range("B1") &gt; 10 Then</p><p>Range("B2") = 10ElseIf Range("B2") &gt; 5 Then</p><p>Range("B2") = 5</p><p>Else</p><p>Range("B2") = 1</p><p>End If</p><p>Joining Text</p><p>myCol = Selection.Columns.Count - 1</p><p>n = 0</p><p>For n = 0 To Selection.Rows.Count - 1</p><p>For i = 1 To myCol</p></li><li><p>8/10/2019 Koleksi Macro Dasar Excel</p><p> 5/6</p><p> ActiveCell.Offset(n, 0) = ActiveCell.Offset(n, 0) &amp; ActiveCell.Offset(n,</p><p>i)</p><p>ActiveCell.Offset(n, i) = ""</p><p>Next i</p><p>Next n</p><p>Message Box</p><p>MsgBox "Created by: Your Name here"</p><p>MsgBox "Different Icon", vbInformation</p><p>MsgBox "Different Icon And Title", vbExclamation, "Your warning</p><p>message"</p><p>Modeless Forms UserForm.show vbModeless</p><p>Moving the Cursor ActiveCell.Offset(1, 0).Select</p><p>Protecting /</p><p>Unprotecting a sheet</p><p>'Protect</p><p>Dim Password</p><p>Password = "xxxx"</p><p>ActiveSheet.Protect Password, True, True, True</p><p>'Unprotect</p><p>Password = "xxxx"</p><p>ActiveSheet.Unprotect Password</p><p>Random numbersMyNumber = Int((10 - 1 + 1) * Rnd + 1)</p><p>Range("A1") = MyNumber</p><p>Rounding Numbers ActiveCell = Application.round(ActiveCell, 2)</p><p>Saving your</p><p>WorkbookActiveWorkbook.Save</p><p>ScreenUpdating Application.ScreenUpdating = False / True</p><p>Select Case</p><p>statement</p><p>Select Case Range("A1").Value</p><p>Case 100, 150 ' = 100 OR 150</p><p>Range("B1").Value = Range("A1").Value</p><p>Case 200 To 300, 400 To 500 ' = Between 200 and 300 OR between 400</p><p>and 500</p><p>Range("B2").Value = Range("A1").Value</p><p>Case Else</p><p>Range("B1").Value = 0</p></li><li><p>8/10/2019 Koleksi Macro Dasar Excel</p><p> 6/6</p><p>End Select</p><p>Select Data Range</p><p>Dim myLastRow As Long</p><p>Dim myLastColumn As Long</p><p>Range("A1").SelectOn Error Resume Next</p><p>myLastRow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row</p><p>myLastColumn = Cells.Find("*", [A1], , , xlByColumns,</p><p>xlPrevious).Column</p><p>myRange = "a1:" &amp; Cells(myLastRow, myLastColumn).Address</p><p>Range(myRange).Select</p><p>Sheets Hiding Sheet1.Visible = xlSheetVeryHidden</p><p>Text Edit</p><p>MsgBox Left("abcd", 2) 'Displays 2 characters from Left</p><p>MsgBox Right("abcd", 2) 'Displays 2 characters from Right</p><p>MsgBox Len("abcd") 'Displays number of characters (Including</p><p>space)</p><p>TimerApplication.Wait Now + TimeValue("00:00:05")</p><p>MsgBox ("This was a 5 second delay")</p><p>Time last save</p><p>MsgBox Excel.Application.ThisWorkbook.BuiltinDocumentProperties("Last</p><p>Save Time")</p><p>vbYesNo</p><p>YesNo = MsgBox("This macro will ... Do you want to continue?", vbYesNo</p><p>+ vbCritical, "Caution")</p><p>Select Case YesNo</p><p>Case vbYes</p><p>'Insert your "Yes" code here.</p><p>Case vbNo</p><p>'Insert your "No" code here.</p><p>End Select</p>http://www.blogger.com/email-post.g?blogID=287256040624724770&amp;postID=7269852479164774167</li></ul>