• ベストアンサー

セルの表示結果をセルの中身にする方法

例えばセルの中身を A1 2004/1/1 B1 =A1 とします。 B1には2004/1/1と表示されます。 この表示された2004/1/1をB1のセル内容にする簡単な方法をご存知ですか? つまりB1の中身 =A1 を 2004/1/1 とするわけです。 なお、上記の例では、分かりやすくするため、 1つのセルだけですが、 複数のセルで表示されている結果を 一度にセルの中身にする必要があります。 過去の教えてgooを検索したところ 「コピー」-「形式を指定して張りつけ」ー「張りつけ」-「値」の方法の場合、 計算式であれば実現できるのですが、 日付のような上記の例ではうまくいきません。 そのため、データ形式に依存しない方法がないか探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.4

VBAで、 エクセル画面でメニュバーのエクセルアイコン(ファイルの左隣)を右クリックして、コードの表示をクリック 右側空白部分に下記コードを貼り付ける。 Xをクリックしてエクセル画面に戻る。 変換したいシートをクリックして ツール -> マクロ -> マクロ -> ThisWorkbook.test を洗濯して実行をクリック Sub test() Dim r As Range For Each r In ActiveSheet.UsedRange r = r.Value Next End Sub

kyoui7
質問者

お礼

なるほど、私はVBAは全然知らないのですが、 上記の通り、やってみましたら、確かにきれいにできました。 ありがとうございます。

その他の回答 (4)

  • helonpa
  • ベストアンサー率38% (108/278)
回答No.5

EXCELでセル全体を選択します。 EXCELで「編集>コピー」します。 メモ帳で「編集>貼り付け」します。 メモ帳で「編集>全てを選択」します。 メモ帳で「編集>コピー」します。 EXCELでA1セルを選択します。 EXCELで「編集>貼り付け」します。

kyoui7
質問者

お礼

確かにこの方法でもできますね。 難点としては、罫線が消えてしまうことでしょうか・・・ ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

(1)複数セルでも全部を範囲指定し、コピーし、同じ範囲に形式を選択して貼りつける-値、にすれば式は消えて値になります。 (2)質問に含まれていないようですが、A1等に表示形式が設定されていて、見た目が随分変わっている場合があります。その見えている通りにB1等に持ってくるには、TEXT関数が使える場合が相当有ります。 例A1が2004/11/2、表示形式で平成16年11月2日と見えている。(値は38293という整数ですが。) B1を=TEXT(A1,"ggge""年""m""月""d""日""") にすればよい。値が平成16年11月2日という文字列になります。

kyoui7
質問者

お礼

ご返答ありがとうございます。 質問では、表現が良くありませんでした、すいません。 「データ形式」に依存しないとは、「表示形式」に依存しないということです。 日付だけでなく、時刻、数値など表示形式に依存しない方法があると嬉しいです。 なぜなら、以下の理由があります。 ・日付以外にも様々な表示形式を持つデータでその処理を行う必要が起きる可能性がある ・複数の人がそのファイルを使うので、トラブルが起きないように、表示形式に依存しないとうれしい

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

#1です。間違ってました。 正しくは、 値と数値の書式を選択して、でした。 失礼しました。

kyoui7
質問者

お礼

ご返答ありがとうございます。 確かに計算式ならそれでOKです。 しかし、例えば表示形式が日付の場合、この方法では 2004/1/1 → 37987 となってしまいます。 ですから、表示形式によらない方法があれば助かるのですが・・・

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

こんばんは。 形式を選択して貼付けの際、 形式と数値の書式を選択して貼付け、ではいかが?

関連するQ&A

  • 関数の結果を""ではなく設定されていないセルにしたい

    EXCEL2000を使用してます。Sheet1シートのA列のセルには、値(文字数値)が設定してあって、B列のセルで以下のような関数を設定してあります。 たとえばB10セルの場合、 =IF(A10="","",T("2"&TEXT($B10,"0000")) A列に何も値がない場合、B列には何も表示されないのですが、Sheet1をSheet2へ「形式を選択して貼付け」→「値」をした場合、B列に""が結果として設定されたセルに何かの値が残っているようです。(A列は改行等の制御文字はありません。)CSVファイルに出力してテキストエディタで参照すると半角スペースのように見えます。貼付け時に「空白を無視する」をチェックしても何かの値がセルに残っているようです。Sheet2にコピーしたときに関数で設定されたセルを何も入力されていないセルにする方法をご教授願います。

  • セルに値をいれたら、いついれたか表示されるのVB

    すいません。質問です。 セルに値をいれたら、 その入力は、いつ入力したかの日付が表示されるのVBが知りたいです。 例としては A列に任意に数字を入れます。 そうすると、B列に日付が入ってほしいのです。 ↓↓↓↓↓↓↓↓↓↓↓    A    B    C 1 あお 1/12土 2 3 4 あか 1/15火 5 上記のように、A1に「あお」といれたらB1に「それを入力した日付」 上記のように、A4に「あか」といれたらB4に「それを入力した日付」 がいれたいです。(次にファイルを開いたときも、todayでなくその入力日の情報のままで) ここをみたら、 http://q.hatena.ne.jp/1184651644 できそうなんですが、 これ、A1とA2という単独のセルにに対してしかできなさそうで、 A列に対して、B列にずっと表示するには、どういうマクロをくめばよろしいのでしょうか? どうぞおしえてくださいませm(_ _)m

  • Excelで日付セルをコピー&ペーストすると…

    Excel2000を使っています。 ある日付形式のセルを、他のBookにコピー&ペーストすると、年の値が変わってしまいます。 具体的には、2003/5/16だったものが、コピペ後のセルでは2007/5/16になります。 「形式を選択して貼り付け」でも、通常の「貼り付け」でも同様です。 いまは列Aに年、列Bに月/日というデータを作っており、 A   B 2003 5/16 という表示形式にしているので不都合はないのですが、 この列Aのセル値を列Bのセルの「年」として指定する方法はありますか? (列Aは標準形式になっています) 分かりにくい文章で申し訳ありませんが、ご存知の方教えてください。

  • 1つのセルの中身をブイルックアップで分けて持ってくる方法。

    シート1のC列に↓のようなセルがあります。 11/11(土) 3回 福島 7日目 11/12(日) 3回 福島 8日目 11/12(日) 6回 京都 4日目 この中から 日付=11/11(土) 場所=福島 以上の部分を D1=IF(B1="","",VLOOKUP(A1,Sheet1!C:M,8,0)) ↑こういうので分けてシート3にもってきたいのですがこのままではセルの中身全部を持ってくることしかできないのでどうすれば日付と場所を分けてそれぞれを持ってくることができるでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=2046491 ↑ここで質問した内容を改良したいのですが、同じセルの中身から部分的に持ってくる方法がわかりません。 よろしくお願いします。

  • Ecxellでセルの数値によって、そのセルの表示形式を変える方法

    Ecxell2003で、セルの数値によって、そのセルの表示形式を変える方法があれば、教えて下さい。 (例)セルA1の値が0以下だったら、その数値を"赤色の文字"で表示し、0以上なら"青色の文字"で表示する。 =if(a1<=0,赤色の文字で表示,青色の文字で表示) 上記のような関数または別の方法などがあれば教えて下さい。

  • 入力した日付から指定の日付を表示

    Excel計算式を教えて下さい。 目的)A1セルに入力した日付を元に、B1セルに指定の日付(毎月20日締)を表示したい。 ルール例) A1に 3月1日(月初)~3月31日(月末)の間の日付を入力すると、B1に4月20日を表示。 値の例) A1:2013/3/1→B1:2013/4/20 A1:2013/3/15→B1:2013/4/20 A1:2013/3/31→B1:2013/4/20 A1:2013/4/1→B1:2013/5/20 A1:2013/4/20→B1:2013/5/20 A1:2013/4/30→B1:2013/5/20 上記を実現する計算式を教えて下さい。

  • 入力した日付から指定の日付を表示

    Excel計算式を教えて下さい。 目的)A1セルに入力した日付を元に、B1セルに指定の日付(毎月20日締)を表示したい。 ルール例) A1に 3月21日~4月20日の間の日付を入力すると、B1に4月20日を表示。 値の例) A1:2013/2/21→B1:2013/3/20 A1:2013/2/27→B1:2013/3/20 A1:2013/3/15→B1:2013/3/20 A1:2013/3/20→B1:2013/3/20 A1:2013/3/21→B1:2013/4/20 A1:2013/3/28→B1:2013/4/20 A1:2013/4/8→B1:2013/4/20 A1:2013/4/20→B1:2013/4/20 上記を実現する計算式を教えて下さい。

  • エクセルのNOW()の返した値を数値データに変換

    エクセルのNOW()の返した値を数値データに変換 セルのA1に =NOW()といれてあります。 セルの書式設定→表示形式→日付→種類でいろいろな表示ができます。 このA1のセルをコピーしてB1に形式を選択して貼り付け→値 で貼り付けます。 同じくセルの書式設定→表示形式→日付→種類でいろいろな表示ができます。 この貼り付けたB1のセルには 2010/8/26 12:48:10 となっています。 このセルの値を100826124810と変換してしまうには B1にどういう式を入れるとできますか? A1の値の変化と連動でB1も変化させたいです。 お願いします。

  • 統合したセルの表示形式反映方法

    よろしくお願いします。 現在エクセルで作った家計簿をアクセス化しようとデータベース化したいと挑戦中ですが、 エクセルで下準備をしているときに以下の条件でつまづいてしまいました。 (例) a列が月記入欄、b列が日記入欄として使っています。 2008年1月1日のセルを作りたいとします。 ・セルa2に【1】、セルb2に【1】と記入してあります。 ・年ごとにシートを作っていたので年の記入欄は無い状態です。 ・セルc3に統合セルとして、【="2008/"&a2&"/"&b2】と入力し、 出てきた値を【形式を選択】し値だけセルd2にペースト。 ・セルd2の表示形式を日付に変更しても、変化なし。 ちなみに、 この際にd2のコマンドライン(【2008/1/1】と入力されている)を選択し何も入力せずにリターンすると表示形式が反映されます。 該当箇所が100000行以上あるのでこの方法は妥当ではありません。 何か対策をご存知の方ご教示願えますようよろしくお願いします。 ※エクセル2000を使用中です。

  • 【Excel】 可視セルへの貼り付けについて

    【Excel】 可視セルへの貼り付けについて Excel2003および2007を使用しています。 ピボットにて集計したデータを別データに貼り付けしたいのですが、 その別データをフィルタで絞って、可視セルのみに貼り付けしたいのですが、 うまくいきません。 非表示のセルにも貼り付けされてしまいます。 可視セルのみに貼り付けできる何かいい方法はありますでしょうか? ちなみに貼り付け方法は 値のみ を希望です。 (例) ◎ ピボットデータ・・・  A B A B A B ◎ 貼り付け先データ・・・ A B C A B C A B C ・・・ABのみフィルタで絞って、ピボットデータを貼り付けしたい。 Cは非表示なので貼り付けしたくない。 よろしくお願いします。

専門家に質問してみよう