%記号なしでパーセンテージ(x100)などの数値をフォーマットする

%記号なしでパーセンテージ(x100)などの数値をフォーマットする

これは質問の反対ですExcel の数値形式: 100 を掛けずに % 値を表示する

たとえば、生のコンテンツが 0.75 であるセルは 75% を意味するという形式のデータがあります。私は、そのようなデータを別のプログラム (Adobe Illustrator) に転送するプロセスを設定していますが、数字に記号 (% であっても) が含まれていると、このプロセスが失敗します。

やりたいですいかなる変更も加えずにコンテンツまたはシートの構造つまり、新しい列はなく、基になるデータも変更されません。明らかに、この制限がなければ、次のような数式を含む列を追加するのは=A1*100非常に簡単です。これらのシートは複雑であり、このプロセスを実行する人以外のチームによって管理されており、このプロセスを実行する人が、新しい数値形式などの簡単に元に戻せる表示上の変更を超えてシートの実際のコンテンツを変更しないようにするため、これらを避けたいと思います。

0.75, 0.5, 0.25のように保存されたデータを取得して、それをコピーして別のアプリケーションに貼り付けることができるような数値形式または同様のプレゼンテーション レイヤーの変更はありますか75, 50, 25?


100 倍する魔法の「パーセンテージ」数値形式は、カスタム形式では としてリストされているように見えますが0.00%、 を削除するだけで%乗算も削除されます。


私は見つけた提案するブログ(Chandoo)#,#.#[ctrl-J]のような形式を使用して%新しい行の下のパーセント記号を非表示にしていますが、ユーザーが出力をコピーして貼り付けるアプリケーションではきれいな出力が必要なので、この方法は機能しません。

答え1

このマクロを使用して作業を完了できます。ただし、最初に Microsoft Forms 2.0 ライブラリへの参照を追加する必要があります。Alt+F11 キーを押して Visual Basic Editor を起動し、[ツール] >> [参照設定] をクリックします。下にスクロールしてMicrosoft Forms 2.0 Object Library、その横にあるボックスをオンにし、[OK] をクリックします。表示されない場合は (アルファベット順にリストされています)、dll 経由で追加する必要があります。[参照] をクリックし、を参照して追加しますC:\Windows\System32\FM20.DLL

使用方法: 範囲を選択し (列全体を選択することもできます)、ユーザーにとって最も簡単な方法でマクロを呼び出します。マクロの実行後、データはクリップボードに保存されます。ボタンを作成したり、ホットキーを割り当てたり、リボンから手動で実行したりできます。値はすべて数式で計算され、空白のセルは存在しないと想定しています。ブックはまったく変更されないため、ユーザーが間違って間違った列を選択しても、データに影響はありません。

Option Explicit

Public Sub CopyPercentAsWholeNumber()

Dim Arr() As Variant
ReDim Arr(1 To Selection.SpecialCells(xlCellTypeFormulas).Count)

Dim i As Long
With Selection
    For i = 1 To UBound(Arr)
        Arr(i) = .Cells(i).Value * 100
    Next i
End With

Dim S As String
Dim objText As New MSForms.DataObject
S = Join(Arr, vbCrLf) & vbNewLine
objText.SetText S
objText.PutInClipboard

End Sub

答え2

クイックフィックス

数字を強調表示します。カスタム フォーマットに進み、0.00 と入力し、同じビットで Ctrl+J を押して、パーセント記号を入力します。次に配置に進み、テキストの折り返しをクリックします。[OK] をクリックします。

これにより、% 記号は非表示になりますが、列名を使用している単位に変更できることを意味します。

関連情報