-
-
Save YujiFukami/fd11e396b898ee1adb76c8dc40908894 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'SSA ・・・元場所:IkiAddin.ModArray | |
'GetDimensionArray・・・元場所:IkiAddin.ModArray | |
'ShowSheetArray1D ・・・元場所:IkiAddin.ModArray | |
'ShowSheetArray2D ・・・元場所:IkiAddin.ModArray | |
Public Sub SSA(Array_ As Variant) | |
'配列の中身をシート上に表示して確認する | |
'表示するシートは新規ブックとして作成する | |
'20250106 | |
'引数 | |
'Array_・・・表示対象の配列 | |
Dim Dimension As Long: Dimension = GetDimensionArray(Array_) | |
Select Case True | |
Case Dimension = 1 | |
Call ShowSheetArray1D(Array_) | |
Case Dimension = 2 | |
Call ShowSheetArray2D(Array_) | |
Case Else | |
'イミディエイトウィンドウで警告表示(MsgBoxだと気づかないから) | |
Call Beep '音を鳴らす | |
Debug.Print "一次元配列か二次元配列を入力してください" | |
End Select | |
End Sub | |
Private Function GetDimensionArray(ByRef Array_ As Variant) | |
'配列の次元数を返す | |
'配列でない場合は0を返す | |
'引数 | |
'Array_・・・配列 | |
'処理 | |
Dim Output As Long | |
Dim Tmp As Variant | |
Dim K As Long | |
If VarType(Array_) < vbArray Then | |
'配列でない場合 | |
Output = 0 | |
Else | |
K = 0 | |
On Error Resume Next | |
Do | |
K = K + 1 | |
Tmp = 0 | |
Tmp = UBound(Array_, K) 'K次元要素数が存在しないならエラーとなる | |
If Tmp = 0 Then | |
'エラーならTmpがEmptyなのでK-1が次元で確定 | |
Output = K - 1 | |
Exit Do | |
End If | |
Loop | |
On Error GoTo 0 | |
End If | |
'出力 | |
GetDimensionArray = Output | |
End Function | |
Private Sub ShowSheetArray1D(Array1D As Variant) | |
'一次元配列の中身をシート上に表示して確認する | |
'表示するシートは新規ブックとして作成する | |
'20250106 | |
'引数 | |
'Array1D・・・表示対象の一次元配列 | |
'新規ブック作成 | |
Dim Book As Workbook: Set Book = Application.Workbooks.Add | |
'新規ブックの最初のシートに二次元配列を出力 | |
Dim Sheet As Worksheet: Set Sheet = Book.Worksheets(1) | |
Dim N As Long: N = UBound(Array1D, 1) | |
Sheet.Range("A1").Resize(N, 1).Value = WorksheetFunction.Transpose(Array1D) | |
'列幅調整、行高さ調整 | |
Sheet.Cells.EntireColumn.AutoFit | |
Sheet.Cells.EntireRow.AutoFit | |
'二次元配列の範囲だけ表示 | |
Sheet.Cells.EntireColumn.Hidden = True | |
Sheet.Range("A1").Resize(N, 1).EntireColumn.Hidden = False | |
Sheet.Cells.EntireRow.Hidden = True | |
Sheet.Range("A1").Resize(N, 1).EntireRow.Hidden = False | |
'一番左上を表示 | |
Sheet.Range("A1").Select | |
End Sub | |
Private Sub ShowSheetArray2D(Array2D As Variant) | |
'二次元配列の中身をシート上に表示して確認する | |
'表示するシートは新規ブックとして作成する | |
'20250106 | |
'引数 | |
'Array2D・・・表示対象の二次元配列 | |
'新規ブック作成 | |
Dim Book As Workbook: Set Book = Application.Workbooks.Add | |
'新規ブックの最初のシートに二次元配列を出力 | |
Dim Sheet As Worksheet: Set Sheet = Book.Worksheets(1) | |
Dim N As Long: N = UBound(Array2D, 1) | |
Dim M As Long: M = UBound(Array2D, 2) | |
Sheet.Range("A1").Resize(N, M).Value = Array2D | |
'列幅調整、行高さ調整 | |
Sheet.Cells.EntireColumn.AutoFit | |
Sheet.Cells.EntireRow.AutoFit | |
'二次元配列の範囲だけ表示 | |
Sheet.Cells.EntireColumn.Hidden = True | |
Sheet.Range("A1").Resize(N, M).EntireColumn.Hidden = False | |
Sheet.Cells.EntireRow.Hidden = True | |
Sheet.Range("A1").Resize(N, M).EntireRow.Hidden = False | |
'一番左上を表示 | |
Sheet.Range("A1").Select | |
End Sub |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment