本ページには広告が含まれています。
- セル
- Excel
セル、行、列、連続した1つ以上のセル範囲を表します。
- 構文
- Range = Range.[_Default]( Cell1, Cell2 )
- 既定プロパティ
- Range.Value プロパティ
- 引数
- Cells1
省略可
- 範囲を指定します。範囲名には、範囲を表す演算子:、共通部分を表すスペース 、または複数の範囲を表す演算子,を使うことができます。
- Cells2
省略可
- セル範囲の左上隅と右下隅のセルを指定します。
- 戻り値
- セルまたはセル範囲を表すRange オブジェクト
Range オブジェクト を返すメソッド・プロパティ
- Range オブジェクト
- セル、行、列、連続した1つ以上のセル範囲を表します。
- Application.ActiveCell プロパティ
- セルまたはセル範囲を表すRangeオブジェクトを返します。
- Application.Cells プロパティ
- 作業中のワークシートのすべてのセルを表すRange オブジェクトを返します。
- Excel.Range
- セル、行、列、連続した1つ以上のセル範囲を表します。
- Application.Selection プロパティ
- Applicationオブジェクトのアクティブなワークシートで現在選択されているオブジェクトを返します。
- Excel.Range
- 指定した条件に一致する最初のセルを検索します。
- Excel.Range
- Findメソッドによって開始された検索を続行します。前回の検索条件に一致するセルを、下方向(行のときは左から右、列のときは上から下)に検索し、見つかったセル(Rangeオブジェクト)を返します。選択範囲やアクティブセルには影響はありません。
- Excel.Range
- 範囲内のセルから特定の条件に一致するRange オブジェクトを返します。条件は、セルの種類(数値、テキスト、エラーなど)やセルの状態(空白、定数、数式など)に基づいて指定することができます。
- Excel.Range
- 指定した範囲の列を表すRange オブジェクトを返します。
- Excel.Range
- 現在の領域を表すRange オブジェクトを返します。
- Excel.Range
- 対象セル範囲の領域における終端のRange オブジェクトへの参照を返します。
- Excel.Range
- 指定された範囲を含む1つまたは複数の列全体を表すRange オブジェクトを返します。読み取り専用です。
- Excel.Range
- 指定されたセル範囲を含む行全体を表すRange オブジェクトを返します。読み取り専用です。
- Excel.Range
- 指定したセル範囲のオフセット値で指定される範囲を表すRange オブジェクトを返します。
- Excel.Range
- 指定された範囲からオフセットした範囲を表すRange オブジェクトを返します。
- Excel.Range
- 指定された範囲のサイズを変更します。サイズが変更されたセル範囲を表すRange オブジェクトを返します。
- Excel.Range
- 指定した範囲の行を表すRange オブジェクトを返します。
- Worksheet.Range プロパティ
- セル、行、列、連続した1つ以上のセル範囲を表します。
関連するメソッド・プロパティ
セルの指定の仕方
単一セル
セルA1を指定する例。
WITH Excel
.Range("A1")
.Range(.Cells(1, 1).Address)
ENDWITH
セル範囲
セル範囲A1〜C5を指定する例。
WITH Excel
.Range("A1:C5")
.Range("A1", "C5")
.Range(.Range("A1"), .Range("C5"))
.Range(.Cells(1, 1), .Cells(5, 3))
.Range("A1", .Cells(5, 3))
.Range(.Cells(1, 1), "C5")
.Range(.Range("A1"), .Cells(5, 3))
.Range(.Cells(1, 1), .Range("C5"))
ENDWITH
複数セル
複数のセルまたはセル範囲を指定する場合、「,(カンマ)」で区切り指定します。
Excel.Range("A1,B3") // セルA1とセルB3
名前付きセル範囲
引数に定義した名前の文字列を指定します。セル範囲に名前を定義するには、Excel.Rangeを使います。
Excel.Range("定義した名前")
共通セル範囲
セルまたはセル範囲を半角のスペースで区切ると共通するセル範囲を取得できます。
WITH Excel
.Range("A1:D6 B4:F8") // .Range("B4:D6")
.Range("A1:D6 B4:F8 B5:B10") // .Range("B5:B6")
ENDWITH
行・列
WITH Excel
.Range("1:1") // 1行目のすべてのセル
.Range("1:3") // 1〜3行目のすべてのセル
.Range("1:5,8:9") // 1〜5行目、8〜9行目のすべてのセル
.Range("B:B") // B列(2列目)のすべてのセル
.Range("B:E") // B〜E列(2〜5列目)のすべてのセル
.Range("A:C,E:F") // A〜C列、E〜F列のすべてのセル
ENDWITH
メソッド
<表示切り替え>- Activate
- 1つのセルをアクティブにします。セルは現在の選択範囲内にある必要があります。セルの範囲を選択するには、Selectメソッドを使用します。
- AddComment
- 指定してセルにコメントを設定する。
- AddCommentThreaded
- AdvancedFilter
- 検索条件範囲に基づいて、リストにフィルターをかけます。
- AllocateChanges
- OLAPデータソースに基づく範囲内の編集されたすべてのセルに書き戻し操作を実行します。
- ApplyNames
- 指定したセル範囲のセルに名前を付けます。
- ApplyOutlineStyles
- 指定された対象セル範囲にアウトラインの既定のスタイルを適用します。
- AutoComplete
- オートコンプリートのリストから、指定された文字列と適合する候補を返します。オートコンプリートが一致しない場合、またはリスト内の複数のエントリが完了する文字列と一致する場合
- AutoFill
- 指定された対象セル範囲内のセルに対してオートフィルを実行します。
- AutoFilter
- オートフィルターを使ってリストをフィルター処理します。
- AutoFit
- 範囲内の列の幅または範囲内の行の高さを変更して、最適な幅または高さにします。
- AutoOutline
- 指定したセル範囲にアウトラインを自動的に作成します。 指定されたセル範囲が 1 つのセルのときは、シート全体にアウトラインが作成されます。 既存のアウトラインはすべて、新しいア
- BorderAround
- 指定範囲に罫線を追加します。
- Calculate
- 開いているすべてのブック、ブック内の特定のワークシート、またはワークシートの指定された範囲のセルを計算します。
- CalculateRowMajorOrder
- 指定されたセル範囲を計算します。
- CheckSpelling
- オブジェクトのスペルをチェックします。
- Clear
- オブジェクト全体(数式・文字・書式・コメント)をクリアします。
- ClearComments
- 指定されたセル範囲からすべてのコメントを消去します。
- ClearContents
- 範囲内の数式と値をクリアします。
- ClearFormats
- オブジェクトの書式設定を削除します。
- ClearHyperlinks
- 指定された範囲からすべてのハイパーリンクを削除します。
- ClearNotes
- 指定されたセル範囲内のすべてのセルからコメントを削除します。
- ClearOutline
- 指定した範囲のアウトラインを消去します。
- ColumnDifferences
- オブジェクトを返すメソッドです。対象セル範囲内のセルと各列の比較セルで、内容の異なるすべてのセル(Rangeオブジェクト)を返します。
- Consolidate
- 複数のワークシートにある複数のセル範囲を、1枚のワークシートの1つのセル範囲に統合します。バリアント型(Variant)の値を使用します。
- ConvertToLinkedDataType
- 指定範囲内のすべてのセルを、株価や地理などのリンクされたデータ型に変換しようとします。
- Copy
- 範囲を、指定の範囲またはクリップボードにコピーします。
- CopyFromRecordset
- 指定された範囲の左上隅を始点として、ADOまたはDAOのRecordsetオブジェクトの内容をワークシートにコピーします。
- CopyPicture
- オブジェクトをクリップボードへピクチャ(画像)としてコピーします。バリアント型(Variant)。
- CreateNames
- シートの対象セル範囲内の文字列を使って、その指定された範囲の名前を作成します。
- Cut
- オブジェクトを切り取り、クリップボードまたは指定された範囲に貼り付けます。
- DataSeries
- 指定されたセル範囲に連続データを作成します。バリアント型(Variant)の値を使用します。
- DataTypeToText
- 範囲内のいずれかのセルが、[株価]や[地理] などのリンクされたデータ型の場合、この呼び出しは値をテキストに変換します。
- Delete
- 指定された範囲内のセルや行、列を削除します。
- DialogBox
- ダイアログ ボックス定義テーブルで定義されているダイアログ ボックスを表示して、選択されたコントロールのインデックス番号を返します。 選択したコントロールの番号を返します。ユ
- Dirty
- 次の再計算が発生したときに再計算する範囲を指定します。
- DiscardChanges
- 編集されたセル範囲内のすべての変更を破棄します。
- EditionOptions
- Visual Basic のキーワードのヘルプを表示します。
- ExportAsFixedFormat
- 文書をPDF形式またはXPS形式で保存します。
- FillDown
- 指定された範囲の先頭のセルから範囲の下に向かって入力します。セル範囲の上端の行のセルの内容と書式がセル範囲中のほかのセルに複写されます。
- FillLeft
- 指定されたセル範囲の右端のセルを左方向のセル範囲に複写します。セル範囲の右端の列のセルの内容と書式がセル範囲中のほかのセルに複写されます。
- FillRight
- 指定されたセル範囲の左端のセルを右方向のセル範囲に複写します。セル範囲の左端の列のセルの内容と書式がセル範囲中のほかのセルに複写されます。
- FillUp
- 指定されたセル範囲の下端のセルを上方向のセル範囲に複写します。セル範囲の下端の行のセルの内容と書式がセル範囲中のほかのセルに複写されます。
- Find
- 指定した条件に一致する最初のセルを検索します。
- FindNext
- Findメソッドによって開始された検索を続行します。前回の検索条件に一致するセルを、下方向(行のときは左から右、列のときは上から下)に検索し、見つかったセル(Rangeオブジェクト)を返します。選択範囲やアクティブセルには影響はありません。
- FindPrevious
- Findメソッドによって開始された検索を続行します。前回の検索条件に一致するセルを、上方向(行のときは右から左、列のときは下から上)に検索し、見つかったセル(Rangeオブジェクト)を返します。選択範囲またはアクティブセルには影響しません。
- FlashFill
- フラッシュフィル機能が有効になっていてアクティブになっている場合Trueを返します。
- FunctionWizard
- Group
- Rangeオブジェクトがピボットテーブルフィールドのデータ範囲内の単一セルを表す場合、Groupメソッドはそのフィールドで数値または日付ベースのグループ化を実行します。
- Insert
- ワークシートまたはマクロシートの指定された範囲に、空白のセルまたはセル範囲を挿入します。指定された範囲にあったセルはシフトされます。
- InsertIndent
- 指定した範囲のインデントを変更します。
- Justify
- 対象セル範囲内の文字列を、そのセル範囲に合わせて割り付けます。
- ListNames
- 定義されている名前のうち、非表示ではないすべての名前の一覧を、ワークシートに貼り付けます。対象セル範囲の先頭のセル以降に貼り付けます。
- Merge
- 指定したRangeオブジェクトから結合されたセルを作成します。
- NavigateArrow
- 指定した範囲のトレース矢印をたどって、参照元のセル、参照先のセル、またはエラーの発生したセルに移動します。参照元、参照先、またはエラーのセルを選択し、新しい選択範囲を表すRangeオブジェクトを返します。指定されたセルにトレース矢印が表示されていないときは、エラーを返します。
- NoteText
- 範囲の左上隅のセルに関連付けられているセルのメモを取得または設定します。値の取得と設定が可能な文字列型(String)の値です。セルのメモは、範囲のコメントに置き換えられています。
- Parse
- 指定セル範囲内のデータを分割して、複数のセルに入力します。分割元セル範囲内のデータは、互いに隣接する複数の列のセル範囲に分配されます。分割元として指定できるセル範囲は、1つの列内のセル範囲に限られます。
- PasteSpecial
- 指定された範囲にコピーされたRangeオブジェクトを貼り付けます。
- PrintOut
- オブジェクトを印刷します。
- PrintPreview
- オブジェクトの印刷プレビュー(印刷時のイメージ)を表示します。
- RemoveDuplicates
- 値の範囲から重複した値を削除します。
- RemoveSubtotal
- Replace
- 指定されたセル範囲内のセルの文字を示すブール値を返します。このメソッドを使用しても、選択範囲またはアクティブセルのどちらも変更されません。
- RowDifferences
- オブジェクトを返すメソッドです。対象セル範囲内のセルを比較して、各行の比較セルから内容が異なるすべてのセル(Rangeオブジェクト)を返します。
- Run
- 指定されたセル範囲にあるExcelのマクロを実行します。セル範囲はマクロシートである必要があります。
- Select
- オブジェクトを選択します。
- SetCellDataTypeFromCell
- SetPhonetic
- 指定された範囲内すべてのセルにPhoneticオブジェクトを作成します。
- Show
- 指定範囲が可視位置に来るようにアクティブ ウィンドウの内容をスクロールします。範囲には、作業中のドキュメントの単一のセルを指定します。
- ShowCard
- ShowDependents
- ShowErrors
- ShowPrecedents
- Sort
- 値の範囲を並べ替えます。
- SortSpecial
- Speak
- 範囲内のセルを、行順または列順に読み上げます。
- SpecialCells
- 範囲内のセルから特定の条件に一致するRange オブジェクトを返します。条件は、セルの種類(数値、テキスト、エラーなど)やセルの状態(空白、定数、数式など)に基づいて指定することができます。
- SubscribeTo
- Subtotal
- セル範囲の集計を作成します。指定されたセル範囲が単一セルのときは、アクティブセル領域を集計します。
- Table
- ワークシートで定義した入力値と数式に基づいて、データテーブルを作成します。
- TextToColumns
- セルに入力されているデータ(1つのセル内で、カンマ、スペース、タブなどで区切られたデータ)を、複数の列に区切ります。対象となる列は1列だけです。
- Ungroup
- セル範囲のアウトラインレベルを上げます(行、列のアウトライン レベルの番号は減ります)。指定する範囲は、1行全部か1列全部、または複数の行全体や列全体である必要があります。ピボットテーブルレポートの中のセル範囲の場合、このメソッドはセル範囲に含まれているアイテムのグループを解除します。
- UnMerge
- 結合された領域をそれぞれのセルに分割します。
プロパティ
<表示切り替え>- AddIndent
- セル内のテキストの配置が等しい分布(水平方向または垂直方向)に設定されている場合に、テキストが自動的にインデントされるかどうかを示す値を取得または設定します。
- Address
- 参照範囲を表す文字列型(String)の値を返します。
- AddressLocal
- AllowEdit
- Application
- Areas
- Borders
- セルの罫線を表します。
- Cells
- Characters
- Column
- 指定した範囲の最初の領域の列番号を返します。
- Columns
- 指定した範囲の列を表すRange オブジェクトを返します。
- ColumnWidth
- Comment
- CommentThreaded
- Count
- コレクションに含まれるオブジェクトの数を返します。
- CountLarge
- コレクションに含まれるオブジェクト(セル)の数を返します。
- Creator
- このオブジェクトを作成したアプリケーションを示す整数値を返します。Excelで作成されたオブジェクトの場合は、文字列XCELを表す値の1480803660(0x5843454C)を返します。
- CurrentArray
- CurrentRegion
- 現在の領域を表すRange オブジェクトを返します。
- Dependents
- DirectDependents
- DirectPrecedents
- DisplayFormat
- End
- 対象セル範囲の領域における終端のRange オブジェクトへの参照を返します。
- EntireColumn
- 指定された範囲を含む1つまたは複数の列全体を表すRange オブジェクトを返します。読み取り専用です。
- EntireRow
- 指定されたセル範囲を含む行全体を表すRange オブジェクトを返します。読み取り専用です。
- Errors
- Font
- FormatConditions
- Formula
- FormulaArray
- FormulaHidden
- FormulaLocal
- FormulaR1C1
- FormulaR1C1Local
- HasArray
- HasFormula
- HasRichDataType
- Height
- Hidden
- HorizontalAlignment
- Hyperlinks
- ID
- IndentLevel
- Interior
- Item
- 指定したセル範囲のオフセット値で指定される範囲を表すRange オブジェクトを返します。
- Left
- LinkedDataTypeState
- ListHeaderRows
- ListObject
- LocationInTable
- Locked
- MDX
- MergeArea
- 指定したセルを含む結合範囲を表すRange オブジェクトを返します。
- MergeCells
- セルを結合状態を取得または設定します。
- Name
- オブジェクトの名前を表すバリアント型(Variant)の値を取得、または設定します。
- Next
- NumberFormat
- NumberFormatLocal
- Offset
- 指定された範囲からオフセットした範囲を表すRange オブジェクトを返します。
- Orientation
- OutlineLevel
- PageBreak
- Parent
- Phonetic
- Phonetics
- PivotCell
- PivotField
- PivotItem
- PivotTable
- Precedents
- PrefixCharacter
- Previous
- QueryTable
- Range
- ReadingOrder
- Resize
- 指定された範囲のサイズを変更します。サイズが変更されたセル範囲を表すRange オブジェクトを返します。
- Row
- 範囲内の最初の領域の行番号を返します。
- RowHeight
- Rows
- 指定した範囲の行を表すRange オブジェクトを返します。
- ServerActions
- ShowDetail
- ShrinkToFit
- セル内のテキストがセルに収まるように自動的にフォントサイズを調整します。
- SoundNote
- SparklineGroups
- Style
- Summary
- Text
- Top
- UseStandardHeight
- UseStandardWidth
- Validation
- Value
- Value2
- VerticalAlignment
- Width
- Worksheet
- WrapText
- XPath
プログラム実行例
罫線を引く
B2セルにカラーパレット1番の色で罫線(外枠)を引きます。
CONST xlContinuous = 1
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Add()
DIM Borders = Excel.Range("B2").Borders
WITH Borders
.LineStyle = xlContinuous
.ColorIndex = 1
ENDWITH
解説(自動生成)
- 1行目
CONST xlContinuous = 1
定数xlContinuousを定義し、1を割り当てます。- 3行目
DIM Excel = CREATEOLEOBJ("Excel.Application")
変数Excelを宣言し、Excel オブジェクトを代入します。- 4行目
- Excel オブジェクトを表示します。
- 5行目
Excel.Workbooks.Add()
()- 7行目
DIM Borders = Excel.Range("B2").Borders
変数Bordersを宣言し、右辺の結果を代入します。- 9、12行目
WITH Borders
…
ENDWITH
- 10行目
.LineStyle = xlContinuous
- 11行目
日付の連続データを入力する*
A1セルに2021/01/01と入力し、行方向に1日ずつ加算し2021/12/31まで入力します。
A1セルに2021/01/01と入力し、[フィル]→[連続データの作成]で範囲を行、種類を日付、増加単位を日、増分値を1、停止値を2021/12/31と設定するのと同様です。
CONST xlCols = 2
CONST xlChronological = 3
CONST xlDay = 1
WITH Excel.Range("A1")
.Value = "2021/01/01"
.DataSeries(xlCols, xlChronological, xlDay, 1, "2021/12/31")
.EntireColumn.AutoFit
ENDWITH
使用関数
- Range オブジェクト(5)
- セル、行、列、連続した1つ以上のセル範囲を表します。
- Range.Value プロパティ(6)
- 指定されたセル範囲に連続データを作成します。バリアント型(Variant)の値を使用します。
- 範囲内の列の幅または範囲内の行の高さを変更して、最適な幅または高さにします。
解説(自動生成)
- 1行目
- 定数xlColsを定義し、2を割り当てます。
- 2行目
CONST xlChronological = 3
定数xlChronologicalを定義し、3を割り当てます。- 3行目
- 定数xlDayを定義し、1を割り当てます。
- 5行目
WITH Excel.Range("A1")
- 6行目
.Value = "2021/01/01"
- 7行目
.DataSeries(xlCols, xlChronological, xlDay, 1, "2021/12/31")
- 8行目
.EntireColumn.AutoFit
1〜12月の連続データを作成*
WITH Excel.Range("A1")
.Value = "1月"
.AutoFill(.Resize(12))
ENDWITH
解説(自動生成)
- 1行目
WITH Excel.Range("A1")
- 2行目
- 3行目
.AutoFill(.Resize(12))
2ヶ月毎の連続データを入力*
CONST xlColumns = 2
CONST xlChronological = 3
CONST xlMonth = 3
WITH Excel.Range("A1")
.Value = "2021/01/01"
.DataSeries(xlColumns, xlChronological, xlMonth, 2, "2021/12/31")
.EntireColumn.AutoFit
ENDWITH
解説(自動生成)
- 1行目
- 定数xlColumnsを定義し、2を割り当てます。
- 2行目
CONST xlChronological = 3
定数xlChronologicalを定義し、3を割り当てます。- 3行目
- 定数xlMonthを定義し、3を割り当てます。
- 5、9行目
WITH Excel.Range("A1")
…
ENDWITH
- 6行目
.Value = "2021/01/01"
- 7行目
.DataSeries(xlColumns, xlChronological, xlMonth, 2, "2021/12/31")
- 8行目
.EntireColumn.AutoFit
セルの位置を取得*
現在選択されているセル情報を取得します。Book1シートのA1セルが選択されている状態で実行しています。
CONST xlA1 = 1
CONST xlR1C1 = -4150
WITH Excel.Application.Selection
PRINT "絶対参照<#TAB><#TAB>" + .Address
PRINT "絶対参照(行)<#TAB>" + .Address(TRUE, FALSE)
PRINT "絶対参照(列)<#TAB>" + .Address(FALSE, TRUE)
PRINT "相対参照<#TAB><#TAB>" + .Address(FALSE, FALSE)
PRINT "R1C1形式<#TAB><#TAB>" + .Address(TRUE, TRUE, xlR1C1)
PRINT "外部参照<#TAB><#TAB>" + .Address(TRUE, TRUE, xlR1C1, TRUE)
ENDWITH
結果
絶対参照 $A$1
絶対参照(行) A$1
絶対参照(列) $A1
相対参照 A1
R1C1形式 R1C1
外部参照 [Book1]Sheet1!R1C1
解説(自動生成)
- 1行目
- 定数xlA1を定義し、1を割り当てます。
- 2行目
- 定数xlR1C1を定義し、-4150を割り当てます。
- 4、11行目
WITH Excel.Application.Selection
…
ENDWITH
- 5行目
PRINT "絶対参照<#TAB><#TAB>" + .Address
- 6行目
PRINT "絶対参照(行)<#TAB>" + .Address(TRUE, FALSE)
- 7行目
PRINT "絶対参照(列)<#TAB>" + .Address(FALSE, TRUE)
- 8行目
PRINT "相対参照<#TAB><#TAB>" + .Address(FALSE, FALSE)
- 9行目
PRINT "R1C1形式<#TAB><#TAB>" + .Address(TRUE, TRUE, xlR1C1)
- 10行目
PRINT "外部参照<#TAB><#TAB>" + .Address(TRUE, TRUE, xlR1C1, TRUE)
表を作成
// XlBordersIndex
CONST xlDiagonalDown = 5
CONST xlEdgeLeft = 7
CONST xlEdgeTop = 8
CONST xlEdgeBottom = 9
CONST xlEdgeRight = 10
// XlLineStyle
CONST xlDouble = -4119
CONST xlContinuous = 1
// XlBorderWeight
CONST xlThick = 4
DIM Excel = ExcelBoot()
WITH Excel
.Range("B2:F6").Borders.LineStyle = xlContinuous
.Range("B2:F6").BorderAround(xlContinuous, xlThick)
.Range("F2:F6").Borders(xlEdgeLeft).LineStyle = xlDouble
.Range("B6:F6").Borders(xlEdgeTop).LineStyle = xlDouble
.Range("B2").Borders(xlDiagonalDown).LineStyle = xlContinuous
WITH .Range("B2:B6").Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
ENDWITH
WITH .Range("B2:F2").Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
ENDWITH
ENDWITH
//////////////////////////////////////////////////
// 【引数】
// path : 開くファイルのパス名
// 【戻り値】
// <a href="https://uwsc.jp/com/excel/" >Excel オブジェクト</a>
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
IFB path = "" THEN
Excel.Workbooks.Add
ELSE
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
IFB FSO.GetParentFolderName(path) = "" THEN
path = GET_CUR_DIR + "\" + path
ENDIF
Excel.Workbooks.Open(path)
ENDIF
RESULT = Excel
FEND
結果
解説(自動生成)
- 1行目
- 2行目
CONST xlDiagonalDown = 5
定数xlDiagonalDownを定義し、5を割り当てます。- 3行目
- 定数xlEdgeLeftを定義し、7を割り当てます。
- 4行目
- 定数xlEdgeTopを定義し、8を割り当てます。
- 5行目
CONST xlEdgeBottom = 9
定数xlEdgeBottomを定義し、9を割り当てます。- 6行目
CONST xlEdgeRight = 10
定数xlEdgeRightを定義し、10を割り当てます。- 8行目
- 9行目
CONST xlDouble = -4119
定数xlDoubleを定義し、-4119を割り当てます。- 10行目
CONST xlContinuous = 1
定数xlContinuousを定義し、1を割り当てます。- 12行目
- 13行目
- 定数xlThickを定義し、4を割り当てます。
- 15行目
DIM Excel = ExcelBoot()
変数Excelを宣言し、右辺の結果を代入します。- 17行目
- 18行目
.Range("B2:F6").Borders.LineStyle = xlContinuous
- 19行目
.Range("B2:F6").BorderAround(xlContinuous, xlThick)
- 20行目
.Range("F2:F6").Borders(xlEdgeLeft).LineStyle = xlDouble
- 21行目
.Range("B6:F6").Borders(xlEdgeTop).LineStyle = xlDouble
- 22行目
.Range("B2").Borders(xlDiagonalDown).LineStyle = xlContinuous
- 23、26行目
WITH .Range("B2:B6").Borders(xlEdgeRight)
…
ENDWITH
- 24行目
.LineStyle = xlContinuous
- 25行目
- 27、30行目
WITH .Range("B2:F2").Borders(xlEdgeBottom)
…
ENDWITH
- 28行目
.LineStyle = xlContinuous
- 29行目
ソート
人口の多い順にソートします。
使用したファイルをダウンロードできます。
CONST xlDown = -4121
CONST xlSortOnValues = 0
CONST xlDescending = 2
CONST xlSortNormal = 0
CONST xlYes = 1
CONST xlGuess = 0
CONST xlTopToBottom = 1
CONST xlPinYin = 1
DIM Excel = ExcelBoot("D:\Documents\都道府県別人口.xlsx")
WITH Excel.ActiveSheet
WITH .Sort
WITH .SortFields
.Clear
.Add(Excel.Range("C2").End(xlDown), xlSortOnValues, xlDescending, xlSortNormal)
ENDWITH
.SetRange(Excel.Range("A1").CurrentRegion)
.Header = xlYes
.MatchCase = FALSE
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
ENDWITH
ENDWITH
//////////////////////////////////////////////////
// 【引数】
// path : 開くファイルのパス名
// 【戻り値】
// <a href="https://uwsc.jp/com/excel/" >Excel オブジェクト</a>
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
IFB path = "" THEN
Excel.Workbooks.Add
ELSE
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
IFB FSO.GetParentFolderName(path) = "" THEN
path = GET_CUR_DIR + "\" + path
ENDIF
Excel.Workbooks.Open(path)
ENDIF
RESULT = Excel
FEND
解説(自動生成)
- 1行目
- 定数xlDownを定義し、-4121を割り当てます。
- 2行目
CONST xlSortOnValues = 0
定数xlSortOnValuesを定義し、0を割り当てます。- 3行目
CONST xlDescending = 2
定数xlDescendingを定義し、2を割り当てます。- 4行目
CONST xlSortNormal = 0
定数xlSortNormalを定義し、0を割り当てます。- 5行目
- 定数xlYesを定義し、1を割り当てます。
- 6行目
- 定数xlGuessを定義し、0を割り当てます。
- 7行目
CONST xlTopToBottom = 1
定数xlTopToBottomを定義し、1を割り当てます。- 8行目
- 定数xlPinYinを定義し、1を割り当てます。
- 10行目
DIM Excel = ExcelBoot("D:\Documents\都道府県別人口.xlsx")
変数Excelを宣言し、右辺の結果を代入します。- 12行目
WITH Excel.ActiveSheet
- 13、24行目
- 14、17行目
WITH .SortFields
…
ENDWITH
- 15行目
- 16行目
.Add(Excel.Range("C2").End(xlDown), xlSortOnValues, xlDescending, xlSortNormal)
- 18行目
.SetRange(Excel.Range("A1").CurrentRegion)
- 19行目
- 20行目
- 21行目
.Orientation = xlTopToBottom
- 22行目
.SortMethod = xlPinYin
- 23行目
コロナのPCR検査実施人数のグラフを生成(Excel)
オープンデータ|厚生労働省のPCR検査実施人数のCSVデータを使用。
CONST xlColumnClustered = 51
DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Open("D:\Downloads\pcr_tested_daily.csv")
DIM Range = Excel.Range("A1").CurrentRegion
DIM Charts = Excel.Charts.Add() // Sheetsオブジェクト
WITH Charts
.ChartType = xlColumnClustered
.SetSourceData(Range)
ENDWITH
結果
解説(自動生成)
- 1行目
CONST xlColumnClustered = 51
定数xlColumnClusteredを定義し、51を割り当てます。- 3行目
DIM Excel = CREATEOLEOBJ("Excel.Application")
変数Excelを宣言し、Excel オブジェクトを代入します。- 4行目
- Excel オブジェクトを表示します。
- 5行目
Excel.Workbooks.Open("D:\Downloads\pcr_tested_daily.csv")
- 7行目
DIM Range = Excel.Range("A1").CurrentRegion
変数Rangeを宣言し、右辺の結果を代入します。- 8行目
DIM Charts = Excel.Charts.Add() // Sheetsオブジェクト
変数Chartsを宣言し、右辺の結果を代入します。- 10、13行目
WITH Charts
…
ENDWITH
- 11行目
.ChartType = xlColumnClustered
- 12行目
.SetSourceData(Range)
参考文献
- https://docs.microsoft.com/ja-jp/office/vba/api/excel.range(object)
関連記事
- Application.ActiveCell プロパティ (Excel)
- セルまたはセル範囲を表すRangeオブジェクトを返します。
- Application.Cells プロパティ (Excel)
- 作業中のワークシートのすべてのセルを表すRange オブジェクトを返します。
- Range.Activate メソッド (Excel)
- 1つのセルをアクティブにします。セルは現在の選択範囲内にある必要があります。セルの範囲を選択するには、Selectメソッドを使用します。
- Range.AutoFill メソッド (Excel)
- 指定された対象セル範囲内のセルに対してオートフィルを実行します。
- Range.AutoFilter メソッド (Excel)
- オートフィルターを使ってリストをフィルター処理します。
- Range.ClearComments メソッド (Excel)
- 指定されたセル範囲からすべてのコメントを消去します。
- Range.ClearHyperlinks メソッド (Excel)
- 指定された範囲からすべてのハイパーリンクを削除します。
- Range.Copy メソッド (Excel)
- 範囲を、指定の範囲またはクリップボードにコピーします。
- Range.DiscardChanges メソッド (Excel)
- 編集されたセル範囲内のすべての変更を破棄します。
- Range.NumberFormatLocal プロパティ (Excel)