Michaelはワークシート内のいくつかのセルを選択でき、タスクバー(ワークシートの下部)には、選択されたセルの分析(セルの合計や平均など)が表示されます。 Michaelは、タスクバーからクリップボードに値をコピーして、その値をワークシートの他の場所に貼り付ける方法があるかどうか疑問に思います。

簡単な答えは「いいえ」です。タスクバーの情報にアクセスする方法はありません。そうは言っても、情報にアクセスできるように情報を再作成するために使用できるアプローチがいくつかあります。

最初の回避策にはマクロの使用は含まれませんが、少しやり過ぎだと思われるかもしれません。 (Excelでバズーカを使ってブツを撃つことができないと誰が言いましたか?)このアプローチには、データ分析ツールの使用が含まれます。このツールは、アドインを使用して実装されます。リボンの[データ]タブを見ると、システムで有効になっているかどうかがわかります。右側にデータ分析ツールが表示されます。表示されない場合は、次の手順に従ってください:

。 [Excelのオプション]ダイアログボックスを表示します。 (Excel 2007では、[Office]ボタンをクリックし、[Excelオプション]をクリックします。Excel2010以降のバージョンでは、リボンの[ファイル]タブが表示され、[オプション]をクリックします。)

。ダイアログボックスの左側にある[アドイン]をクリックします。

。ダイアログボックスの下部にある[管理]ドロップダウンリストを使用して、Excelアドインを選択します。

。 [移動]ボタンをクリックします。 Excelに[アドイン]ダイアログボックスが表示されます。 (図1を参照)

。 AnalysisToolPakの横にあるチェックボックスを選択します。

。 [OK]をクリックします。

データ分析アドインをアクティブにして、分析するセルを選択します。通常どおり、タスクバーに統計が表示されます。次に、リボンの[データ]タブを表示し、[データ分析]ツールをクリックします。

Excelに[データ分析]ダイアログボックスが表示されます。 (図2を参照)

image

図2. [データ分析]ダイアログボックス。

このダイアログボックスは、実行できるさまざまな分析を一覧表示する以外は何もしません。 [記述統計]オプションを選択し、[OK]をクリックします。次に、Excelは[記述統計]ダイアログボックスを表示します。 (図3を参照)

image

図3.記述統計ダイアログボックス。

分析するセルが[入力範囲]ボックスにまだ表示されていない場合は、そのボックスを1回クリックして、ワークシートでセルを選択します。

次に、ダイアログボックスの下部にある[要約統計量]チェックボックスをクリックします。 [OK]をクリックすると、Excelは、タスクバーに表示される可能性のあるすべての統計情報(およびその他)を含む新しいワークシートを作成します。次に、必要に応じてこれらのいずれかをワークシートにコピーして戻し、作業が終了したら追加したワークシートを削除できます。

(参照してください—やり過ぎかもしれないと言いました。)

マクロを使用してもかまわない場合は、必要な情報を返すユーザー定義関数を作成できます。使用できるものは次のとおりです。

Function Stats(R As Range, Op As String) As Long     Dim sTemp As String     Dim c As Range     Dim sOp As String

Stats = 0     On Error GoTo Done     sOp = UCASE(Op)

Select Case sOp         Case "AVG"

Stats = WorksheetFunction.Average(R)

Case "CNT"

For Each c In R                 If Not IsEmpty(c.Value) Then Stats = Stats + 1             Next c         Case "MIN"

Stats = WorksheetFunction.Min(R)

Case "MAX"

Stats = WorksheetFunction.Max(R)

Case "SUM"

Stats = WorksheetFunction.Sum(R)

Case Else             sTemp = "This function requires two parameters. "

sTemp = sTemp & "The first is the cells you want evaulated. "

sTemp = sTemp & "The second is the operation you want "

sTemp = sTemp & "performed. You can use the following "

sTemp = sTemp & "operations:" & vbCrLf & vbCrLf             sTemp = sTemp & "   AVG (average)" & vbCrLf             sTemp = sTemp & "   CNT (count of cells with values)" & vbCrLf             sTemp = sTemp & "   MIN (minimum)" & vbCrLf             sTemp = sTemp & "   MAX (maximum)" & vbCrLf             sTemp = sTemp & "  * SUM (sum)" & vbCrLf             MsgBox sTemp     End Select Done:

End Function

この関数を使用するには、セルに次のようなものを入力するだけです。

=Stats(B3:B7, "Min")

マクロを調べることにより、2番目のパラメーターを介して関数に渡すことができるさまざまな操作コードを理解できます。ユーザー定義関数は、それ自体、少しやり過ぎのようです。どうして?通常の数式を使用して必要な情報を取得できるためです。

=MIN(B3:B7)

代わりに、ショートカットキーに関連付けられたマクロを作成することをお勧めします。次に、これを選択したセルで使用して、必要な情報をクリップボードに詰め込むことができます。

Sub StatClip()

Dim sTemp As String     Dim R As Range     Dim f As Variant     Dim obj As New DataObject

Set R = Selection     Set f = Application.WorksheetFunction

sTemp = "Address:" & vbTab & R.Address & vbCrLf     sTemp = sTemp & "Average:" & vbTab & f.Average(R) & vbCrLf     sTemp = sTemp & "Count: " & vbTab & f.Count(R) & vbCrLf     sTemp = sTemp & "Min: " & vbTab & f.Min(R) & vbCrLf     sTemp = sTemp & "Max: " & vbTab & f.Max(R) & vbCrLf     sTemp = sTemp & "Sum: " & vbTab & f.Sum(R) & vbCrLF

obj.SetText sTemp     obj.PutInClipboard End Sub

このマクロをキーボードショートカットに割り当てることを忘れないでください。そうすれば、ワークシートでいくつかのセルを選択しているときに、(ショートカットを使用して)呼び出すことができます。マクロを実行しようとしたときにエラーが発生した場合は、プロジェクトでMicrosoft Forms 2.0オブジェクトライブラリが有効になっていないため、間違いありません。 VBAエディターで、[ツール]、[ツール]の順に選択します。必要なライブラリを有効にするための参照。

実際にマクロを呼び出すと、何も起こらないように見えます。これは正常です;情報がクリップボードに詰め込まれていることを忘れないでください。マクロの実行後、別のセルを選択し、Ctrl + Vを押して、クリップボードの内容をワークシートに貼り付ける必要があります。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(6232)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。