ExcelVBAへの道
|
以下は標準モジュールに書く。 ================================================================================= Sub 印刷() Worksheets("Sheet1").Activate ActiveSheet.PrintOut End Sub ------------------------------------------------- Sub 選択範囲印刷() Worksheets("Sheet1").Activate Range("A1:G10").Select Selection.PrintOut End Sub ------------------------------------------------- Sub 選択範囲印刷2() ActiveWindow.RangeSelection.PrintOut End Sub -------------------------------------------------- Sub シート全てを印刷() ActiveWorkbook.Worksheets.PrintOut End Sub --------------------------------------------------- Sub 選択範囲印刷2と印刷枚数() ActiveWindow.RangeSelection.PrintOut Copies:=2 End Sub ------------------------------------------------------- Sub 余白設定() ' Worksheets("Sheet1").Activate With ActiveSheet.PageSetup .LeftMargin = Application.CentimetersToPoints(5) '左余白 .RightMargin = Application.CentimetersToPoints(5) '右余白 .TopMargin = Application.CentimetersToPoints(5) '左余白 .BottomMargin = Application.CentimetersToPoints(5) '左余白 .HeaderMargin = Application.CentimetersToPoints(15) '左余白 .FooterMargin = Application.CentimetersToPoints(15) '左余白 End With ActiveWindow.RangeSelection.PrintOut End Sub ------------------------------------------------------------------------ Sub 他のアプリケーション起動() Dim apl1 On Error GoTo Errhandler ' MsgBox "プログラム起動", vbOKOnly, "アプリケーション起動" apl1 = Shell("c:\windows\calc.exe", vbNormalFocus) If apl1 = 0 Then MsgBox "エラー発生", vbOKOnly, "アプリ起動エラー" Else MsgBox "アプリ終了しました", vbOKOnly, "アプリ正常終了" End If Exit Sub Errhandler: MsgBox "エラーが発生しました", vbOKOnly, "終了します" End Sub ---------------------------------------------------------------------------------- Sub インプットボックスで範囲選択() Dim area As Range Set area = Application.InputBox(prompt:="セル範囲選択", Type:=8) area.Interior.ColorIndex = 4 '緑色に塗り潰す End Sub ----------------------------------------------------------------------------- Sub Enter入力後右へ移動() Application.MoveAfterReturnDirection = xlToRight End Sub ----------------------------------------------------------------------------- Sub 特定セルのみ選択可能設定() With Worksheets("sheet1") .Range("A3").Locked = False .Range("C3:F4").Locked = False .EnableSelection = xlUnlockedCells .Protect 'シートの保護 End With End Sub ------------------------------------------------------------------------------ オブジェクト変数設定 'setで定義する。 Dim hani1 As Range Set hani1 = Worksheets("Sheet1").Range("A1").CurrentRegion ----------------------------------------------------------------------------- Sub フォーム表示() Load UserForm1 'Unload Me 'フォーム閉じる End Sub -------------------------------------------------------- Private Sub Workbook_Open() ’ワークシートを開くと自動的にフォームを開く UserForm1.Show 'ThisWorkbookにコードを書くこと! End Sub -------------------------------------------------------------------------- Private Sub CommandButton1_Click() '日時を取得する。 Dim myday As Date Dim mytime As Variant myday = Date mytime = Time TextBox1.Text = myday TextBox2.Text = mytime End Sub Sub オブジェクトの表示非表示() ActiveSheet.Shapes("オートシェィプ1").Visible=False Sub ワークシート削除() ActiveSheet.Delete End Sub Sub 新規ワークシート追加() Sheets.Add Sub End Sub 新規ワークシート追加2() Worksheets.Add newsheet=InputBox("新規シート名入力","シート名入力") ActiveSheet.Name=newsheet End Sub Sub リスト選択() ActiveCell.CurrentRegion.Select End Sub Sub リスト内上部1行選択() Selection.Renge(Cells(1,1),Cells(1,10)).Interior.ColorIndex=3 End Sub '文字列を半角大文字にするコード例 Dim mycell As Range mycell.Value=StrConv(mycell.Value,vbNarrow+vbUpperCase) 最終列、最終行を取得 Dim myClm As Integer Dim myRow As Long myClm=Range("A1").End(xlToRight).Colum myRow=Range("A1").End(xlDown).Row 範囲選択の変更 Range("A1").select Selection.Resize(Selection.Row.Count+5,Selection.Columns.Count+5).Select リストのデータ数取得 Dim datacount As integer datacount = Range("A1").CurrentRegion.Rows シートのすべてのデータを選択 ActiveSheet.UsedRange.Select 画面のちらつき防止 Application.ScreenUpdating = False 重複データの削除 Dim myLow As Long Dim n As Long myLow = Range("A65536").End(xlUp).Row For n = myLow To 3 Step -1 '1行目に項目がある場合3行目まで実行 If Cells(n,1).Value = Cells(n-1,1).Value Then Cells(n,1).EntireRow.Delete End If Next n |