- ベストアンサー
セルの表示結果をセルの中身にする方法
例えばセルの中身を A1 2004/1/1 B1 =A1 とします。 B1には2004/1/1と表示されます。 この表示された2004/1/1をB1のセル内容にする簡単な方法をご存知ですか? つまりB1の中身 =A1 を 2004/1/1 とするわけです。 なお、上記の例では、分かりやすくするため、 1つのセルだけですが、 複数のセルで表示されている結果を 一度にセルの中身にする必要があります。 過去の教えてgooを検索したところ 「コピー」-「形式を指定して張りつけ」ー「張りつけ」-「値」の方法の場合、 計算式であれば実現できるのですが、 日付のような上記の例ではうまくいきません。 そのため、データ形式に依存しない方法がないか探しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
VBAで、 エクセル画面でメニュバーのエクセルアイコン(ファイルの左隣)を右クリックして、コードの表示をクリック 右側空白部分に下記コードを貼り付ける。 Xをクリックしてエクセル画面に戻る。 変換したいシートをクリックして ツール -> マクロ -> マクロ -> ThisWorkbook.test を洗濯して実行をクリック Sub test() Dim r As Range For Each r In ActiveSheet.UsedRange r = r.Value Next End Sub
その他の回答 (4)
- helonpa
- ベストアンサー率38% (108/278)
EXCELでセル全体を選択します。 EXCELで「編集>コピー」します。 メモ帳で「編集>貼り付け」します。 メモ帳で「編集>全てを選択」します。 メモ帳で「編集>コピー」します。 EXCELでA1セルを選択します。 EXCELで「編集>貼り付け」します。
お礼
確かにこの方法でもできますね。 難点としては、罫線が消えてしまうことでしょうか・・・ ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17070)
(1)複数セルでも全部を範囲指定し、コピーし、同じ範囲に形式を選択して貼りつける-値、にすれば式は消えて値になります。 (2)質問に含まれていないようですが、A1等に表示形式が設定されていて、見た目が随分変わっている場合があります。その見えている通りにB1等に持ってくるには、TEXT関数が使える場合が相当有ります。 例A1が2004/11/2、表示形式で平成16年11月2日と見えている。(値は38293という整数ですが。) B1を=TEXT(A1,"ggge""年""m""月""d""日""") にすればよい。値が平成16年11月2日という文字列になります。
お礼
ご返答ありがとうございます。 質問では、表現が良くありませんでした、すいません。 「データ形式」に依存しないとは、「表示形式」に依存しないということです。 日付だけでなく、時刻、数値など表示形式に依存しない方法があると嬉しいです。 なぜなら、以下の理由があります。 ・日付以外にも様々な表示形式を持つデータでその処理を行う必要が起きる可能性がある ・複数の人がそのファイルを使うので、トラブルが起きないように、表示形式に依存しないとうれしい
- marbin
- ベストアンサー率27% (636/2290)
#1です。間違ってました。 正しくは、 値と数値の書式を選択して、でした。 失礼しました。
お礼
ご返答ありがとうございます。 確かに計算式ならそれでOKです。 しかし、例えば表示形式が日付の場合、この方法では 2004/1/1 → 37987 となってしまいます。 ですから、表示形式によらない方法があれば助かるのですが・・・
- marbin
- ベストアンサー率27% (636/2290)
こんばんは。 形式を選択して貼付けの際、 形式と数値の書式を選択して貼付け、ではいかが?
お礼
なるほど、私はVBAは全然知らないのですが、 上記の通り、やってみましたら、確かにきれいにできました。 ありがとうございます。