cbbbbbbbbbcfc動的配列の宣言 Dim MyArray() As String xcvcxxccxxfb 指定したファイル(開いていること)にワークシートを追加し、名前を付ける Workbooks(\\\\\\\\\\\\\\\"Filename.xls\\\\\\\\\\\\\\\").Sheets.Add Workbooks(\\\\\\\\\\\\\\\"Filename.xls\\\\\\\\\\\\\\\").ActiveSheet.Name = \\\\\\\\\\\\\\\"SheetName\\\\\\\\\\\\\\\" エクセル関数をVBAで使う 事例では、関数 count を使っている d = WorksheetFunction.Count(Range(\\\\\\\\\\\\\\\"E:E\\\\\\\\\\\\\\\")) 指定したセルの読み上げ バージョン2002以降。 Range(\\\\\\\\\\\\\\\"Q25\\\\\\\\\\\\\\\").Speak 自己パス名を取得(その1)最後に\\\\\\\\\\\\\\\\付き MyPath = Left(ActiveWorkbook.FullName, _ Len(ActiveWorkbook.FullName) - Len(ActiveWorkbook.Name)) 自己パス名を取得(その2)最後に\\\\\\\\\\\\\\\\なし ActiveWorkbook.Path アクティブなファイル名を取得 myfile = ActiveWorkbook.Name アクティブなファイル名を取得(フルパス付き) myfile = ActiveWorkbook.FullName マクロを実行しているファイル名を取得 myfile = ThisWorkbook.Name ワークシートの数 Worksheets.Count シート名の表示 MsgBox Worksheets(SheetNO).CodeName ユーザーフォームの表示 UserForm.show ユーザーフォームの非表示 Unload UserForm ユーザーフォーム上のチェックボックスのチェックを調べる If UserForm1.CheckBox1.Value = True Then MsgBox “チェックされています。” End If ワークシートウインドウの最小化 ActiveWindow.WindowState = xlMinimized ワークシートウインドウの最大化 ActiveWindow.WindowState = xlMaximized 選択範囲のセルの書式を文字列にする Columns(\\\\\\\\\\\\\\\"F:L\\\\\\\\\\\\\\\").Select Selection.NumberFormatLocal = \\\\\\\\\\\\\\\"@\\\\\\\\\\\\\\\" エクセルファイルを開く Workbooks.Open Filename:=ActiveWorkbook.Path & \\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" & エクセルファイル名 ファイルオープンのダイアログボックスを開き、エクセルファイルを開きます。 Application.Dialogs(xlDialogOpen).Show ファイルオープンのダイアログボックスでファイル名を取得 (Filename:フルパス付き Filename2:ファイル名のみ) Dim Filename As Variant Dim Filename2 As Variant Filename = Application.GetOpenFilename _ (\\\\\\\\\\\\\\\"csvファイル (*.csv), *.csv\\\\\\\\\\\\\\\", , \\\\\\\\\\\\\\\"ファイルの選択\\\\\\\\\\\\\\\", , False) ‘True とすると複数選択可能 Filename2 = Dir(Filename) アクティブなエクセルファイルのクローズ ActiveWorkbook.Close エクセルファイルのクローズ Workbooks(エクセルファイル名).Close エクセルファイルを保存せずにクローズ Workbooks(ActiveWorkbook.Name).Close savechanges:=False エクセルファイルを保存してクローズ Workbooks(ActiveWorkbook.Name).Close savechanges:=True 開いているエクセルファイルに名前を付けて保存する Workbooks(開いているファイル名).SaveAs (新しいファイル名) ファイルの削除 Kill myXlsFile テキストファイル・バイナリファイルの処理(シーケンシャル入力モード、バイト単位での入力)。 myFNo = FreeFile \\\\\\\\\\\\\\\'使用可能なファイル番号を取得 Open myCsvFile For Input As #myFNo \\\\\\\\\\\\\\\' ファイルをシーケンシャル入力モードで開きます。 MaxSize = LOF(myFNo) \\\\\\\\\\\\\\\' ファイルのサイズをバイト数で取得します。 \\\\\\\\\\\\\\\' Fort~Nextループを使って、 For NextChar = 1 To MaxSize - 1 Step 1 ’すべての文字を前から読み込みます。 Seek #myFNo, NextChar \\\\\\\\\\\\\\\' 位置を設定します。 MyChar = Input(1, #myFNo) \\\\\\\\\\\\\\\' 文字を読み込みます。 ‘ここで処理をします。 Next NextChar Close #myFNo \\\\\\\\\\\\\\\' csvファイルを閉じます。 テキストファイルの処理(シーケンシャル入力モード、行単位での入力)。 myFNo = FreeFile \\\\\\\\\\\\\\\'使用可能なファイル番号を取得 Open myTextFile For Input As #myFNo \\\\\\\\\\\\\\\' ファイルをシーケンシャル入力モードで開きます。 Do While Not EOF(myFNo) \\\\\\\\\\\\\\\' ファイルの終端までループを繰り返します。 Line Input #myFNo, myBuf \\\\\\\\\\\\\\\' 行を変数に読み込みます。 ‘ここで処理をします。 Loop Close #myFNo \\\\\\\\\\\\\\\'ファイルを閉じます。 シート間のコピーペースト(その1) Worksheets(\\\\\\\\\\\\\\\"Sheet3\\\\\\\\\\\\\\\").Rows(\\\\\\\\\\\\\\\"1:1\\\\\\\\\\\\\\\").Copy Worksheets(\\\\\\\\\\\\\\\"Sheet2\\\\\\\\\\\\\\\").Paste (Rows(\\\\\\\\\\\\\\\"1:1\\\\\\\\\\\\\\\")) シート間のコピーペースト(その2) Worksheets(S_sheet).Rows(row_no).Copy (Worksheets(D_sheet).Rows(D_row_no)) セル幅を指定 Columns(\\\\\\\\\\\\\\\"D:D\\\\\\\\\\\\\\\").ColumnWidth = 6.5 セルの高さを指定 Rows(\\\\\\\\\\\\\\\"9:9\\\\\\\\\\\\\\\").RowHeight = 40.5 列の非表示 Columns(\\\\\\\\\\\\\\\"B:B\\\\\\\\\\\\\\\").EntireColumn.Hidden = True 列の表示 Columns(\\\\\\\\\\\\\\\"B:B\\\\\\\\\\\\\\\").EntireColumn.Hidden = False 確認のメッセージを出さずにSheet2を削除する Application.DisplayAlerts = False Worksheets(\\\\\\\\\\\\\\\"Sheet2\\\\\\\\\\\\\\\").Delete Application.DisplayAlerts = True Yes (ms=6) No (ms=7) の確認ダイアログ ms = MsgBox(\\\\\\\\\\\\\\\"メッセージ。続けますか?\\\\\\\\\\\\\\\", vbYesNo) メッセージダイアログボックス内で改行する MsgBox(\\\\\\\\\\\\\\\"改行して二行で表示します。\\\\\\\\\\\\\\\" & vbCr & _ \\\\\\\\\\\\\\\"これが二行目です。\\\\\\\\\\\\\\\") 正の整数のみを入力する Do MyValue = InputBox(\\\\\\\\\\\\\\\"正の整数のみを入力します\\\\\\\\\\\\\\\") Loop Until MyValue > 0 And IsNumeric(MyValue) = True アクティブなシートを保護する ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True アクティブなシートの保護を解除する ActiveSheet.Unprotect 円を描く Set WShape = Worksheets(\\\\\\\\\\\\\\\"Sheet1\\\\\\\\\\\\\\\").Shapes Set Obj1 = WShape.AddShape(msoShapeOval, h_oval, v_oval, 18, 18) ‘ 18, 19 とすれば楕円形 With Obj1 .Fill.Visible = msoFalse \\\\\\\\\\\\\\\'塗りつぶし無し .Line.Weight = xlThin \\\\\\\\\\\\\\\'線を細線に、xlThinの代わりに1, 2, 3, 4 でもよい .Name = \\\\\\\\\\\\\\\"maru1\\\\\\\\\\\\\\\" End With 円を削除 With Worksheets(\\\\\\\\\\\\\\\"Sheet1\\\\\\\\\\\\\\\") .Shapes(\\\\\\\\\\\\\\\"maru1\\\\\\\\\\\\\\\").Delete End With Range()の使い方 この例では、セルA1からA10までに空白文字列を入れている For T = 1 To 10 Range(\\\\\\\\\\\\\\\"A\\\\\\\\\\\\\\\" & T) = “” Next T 範囲を指定して印刷 ActiveSheet.PageSetup.PrintArea = \\\\\\\\\\\\\\\"$A$1:$AO$46\\\\\\\\\\\\\\\" ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 一時的にプリンタを切り替える tmpprtname = ActivePrinter ‘アクティブプリンタ名を保存 Application.ActivePrinter = \\\\\\\\\\\\\\\"プリンタ名、マクロの記録で取得すること\\\\\\\\\\\\\\\" ‘ここで処理 Application.ActivePrinter = tmpprtname ‘保存していたプリンタ名を戻す Withの使い方 With Workbooks(1).Worksheets(1) .Cells(RowPos1, 3) = 1 .Cells(RowPos1, 3) = 2 .Cells(RowPos1, 3) = 3 .Cells(RowPos1, 3) = 4 End With Setの使い方 Set WS = Worksheets(1).Worksheets(1) WS.Cells(RowPos2, 3) = 1 WS.Cells(RowPos2, 3) = 2 WS.Cells(RowPos2, 3) = 3 WS.Cells(RowPos2, 3) = 4 Functionの使い方 Sub Main() MsgBox Fname(10) ‘ 5と表示されます。 End Sub Function Fname(a) Fname = a / 2 End Function