- 日時: 2013/07/21 07:45
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:シート数,シート名,追加・削除,シート名の一覧 * ***********************************************************************************
元質問: Excelの関数の使い方について - 秋風 2002/11/12-11:16 No.1335
Excelで、データを読み込ませた後、データ値のMIN値を出したいのですが、どのように範囲選択するのか分かりません。 データ表は、 A(MIN値) B C D E F 1 4 4 5 8 9 2 3 3 5 9 3 1 7 1 6 4 3 のような感じでA列にMIN値をオートで入れたいのです。
データ値(列に入る)と行数が可変なものですから、Rangeの所で、":"がうまく使用できません。列に関しては、256まで全て選択で固定させようと思っています。
----------------------------------------------------------------------------------- Re: Excelの関数の使い方について - A221 2002/11/12-11:59 No.1336 ----------------------------------------------------------------------------------- Rangeの指定は文字列ではなかったかと。セルにまんま式を入れてしまう方法です。 #動作の確認はしていません。
Dim Col As Long Dim Row As Long Dim MinRange As String 'Rows=データの行数 For i=0 To Rows Col = lngkikakugyou - 1 minrange = "B" & i & ":" & Code2Alphabet(Col) & i xlSheet.Cells(i, 1).Value = "=Min(" & minrange & ")" Next i
Public Function Code2Alphabet(ByVal X As Long) As String Dim Lcode As String Dim Scode As String If (X \ 27) Then Lcode = Chr$(64 + ((X + (X \ 27)) \ 27)) X = (X Mod 27) + (X \ 27) Scode = Chr$(64 + (X Mod 27)) Code2Alphabet = Lcode + Scode End Function
----------------------------------------------------------------------------------- Excelの関数の使用例及び入力済み範囲の取得・他 - 花ちゃん 2007/08/09 ----------------------------------------------------------------------------------- '☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 'Excel 操作部分(Excelの関数の使用例及び入力済み範囲の取得・他) 'テスト用データの作成及び入力(Range オブジェクトを使ってのデータの入力例) Dim xlRange As Excel.Range Dim Dat(1 To 3, 1 To 6) As Variant Dat(1, 1) = 4: Dat(1, 2) = 4: Dat(1, 3) = 5: Dat(1, 4) = 8: Dat(1, 5) = 9: Dat(1, 6) = "" Dat(2, 1) = 3: Dat(2, 2) = 3: Dat(2, 3) = 5: Dat(2, 4) = 9: Dat(2, 5) = "": Dat(2, 6) = "" Dat(3, 1) = 1: Dat(3, 2) = 7: Dat(3, 3) = 1: Dat(3, 4) = 6: Dat(3, 5) = 4: Dat(3, 6) = 3 'R1C1形式の数値で指定したアドレスをA1形式に変換する関数を使用 Set xlRange = xlSheet.Range(ToA1Style(1, 1, 6, 3)) 'データの入力セル範囲 xlRange.Value = Dat 'セルへデータの入力 'データの入力範囲の取得 '指定のセル位置を含む空白行と空白列に囲まれた最小のセル範囲を取得 'Activateなセル("A1")があるActivateセル領域を選択します。 xlSheet.Range("A1").Activate xlApp.ActiveCell.CurrentRegion.Select '---------------------------------------------- 'Address プロパティでその範囲を A1 形式で取得。 xlSheet.Cells(5, 1).Value = "セル A1 があるActivateセル領域は " & _ xlApp.ActiveCell.CurrentRegion.Address(False, False, xlA1) & _ " の範囲です。" 'A1:F3 '---------------------------------------------- 'xlSheet 上の使用済みのセル範囲を取得 xlSheet.Cells(6, 1).Value = "使用済みセル領域は " & _ xlSheet.UsedRange.Address(False, False, xlA1) & " です。" 'A1:F5
'----------------------------------------------- 'Excel の関数の使用例(Excel 標準の取得値と同じです) 'データの個数を取得 xlSheet.Cells(8, 1).Value = "個数" xlSheet.Cells(8, 2).Value = "=COUNT(" & ToA1Style(1, 1, 6, 3) & ")" '15 'データの最小値を取得 xlSheet.Cells(9, 1).Value = "最小値" xlSheet.Cells(9, 2).Value = "=MIN(" & ToA1Style(1, 1, 6, 3) & ")" '1 'データの最大値を取得 xlSheet.Cells(10, 1).Value = "最大値" xlSheet.Cells(10, 2).Value = "=MAX(" & ToA1Style(1, 1, 6, 3) & ")" '9 'データの合計を取得 xlSheet.Cells(11, 1).Value = "合計" xlSheet.Cells(11, 2).Value = "=SUM(" & ToA1Style(1, 1, 6, 3) & ")" '72 'データの平均値を取得 xlSheet.Cells(12, 1).Value = "平均" xlSheet.Cells(12, 2).Value = "=AVERAGE(" & ToA1Style(1, 1, 6, 3) & ")" '4.8 72÷15 '☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
'セルのアドレスの形式をA1形式に変換する関数 Private Function ToA1Style(ByVal C1 As Integer, ByVal R1 As Integer, _ ByVal C2 As Integer, ByVal R2 As Integer) Dim i As Integer, A1 As String, A2 As String i = Int((C1 - 1) / 26) A1 = IIf(C1 > 26, Chr$(64 + i), "") i = C1 - 26 * i A1 = A1 & Chr$(64 + i) i = Int((C2 - 1) / 26) A2 = IIf(C2 > 26, Chr$(64 + i), "") i = C2 - 26 * i A2 = A2 & Chr$(64 + i) ToA1Style = A1 & R1 & ":" & A2 & R2 End Function
------------------------------------------------------------ 上記の実行結果 http://hanatyan.sakura.ne.jp/samplepic/excel-8-1.gif
注意 ----------------------------------------------------------------------------------- 上記のセルのアドレスの形式をA1形式に変換する関数は、Excel 2007 では、703列目以降の 列で、正しい値が返らないようです。 (普通は、700列以上のセルを使用する事は無いと思いますが) その場合は、下記のリンクの魔界の仮面弁士さん作の関数を使わせて頂いて下さい。 http://yaplog.jp/orator/archive/77
|