• ベストアンサー

セルの書式設定

VBAで時刻の列を別シートにCOPYしたところ、 セルの書式設定まではコピーされず、 ハチャメチャな数字が表示されてしまいました。 セルの書式設定もコピーできないでしょうか? Sheets("Sheet3").Columns(1).Value = Sheets("Sheet1").Columns(1).Value でやってます。

noname#12381
noname#12381

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

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

NumberFormatLocalプロパティを使えば良いでしょう。 私のクセでValueは省略。 .NumberFormatLocal = "yyyy/m/d"で日付書式を指定も できます。 Columns(1)でも出来るでしょう。 Sub test01() Worksheets("sheet2").Cells(1, 1).NumberFormatLocal = _ Worksheets("sheet1").Cells(1, 1).NumberFormatLocal Worksheets("sheet2").Cells(1, 1) = Worksheets("sheet1").Cells(1, 1) End Sub

noname#12381
質問者

お礼

なるほど! できました!

関連するQ&A

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • 数字がセルの左側に寄っていてセルの書式設定がききません。

    別のExcelから一括コピーした数字がセルの左側に寄っていてセルの書式設定がききません。セルをダブルクリックすると何かが解除され、セルの書式設定が有効になります。 コピー時もしくは一括で解除できる方法はあるのでしょうか。どなたか教えてください。 例12345678左より セルをダブルクリック表示のユーザ設定が有効になり 1-23456-78と表示

  • 単一セルではなく範囲に対して条件付き書式を設定するとき

    条件付き書式について質問です。 A7:M15の範囲を「色範囲」と名前定義しているとして、 その範囲の中で「あ」から始まる文字列の場合、 フォントの色を赤色に設定したいのですが、 1つ1つのセルに対して条件付き書式を設定していくのであれば当然出来きるのはわかります。 Workbooks(book1).Sheets(sheet1).Cells("A7").FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A7,""あ*"")" .FormatConditions(1).interior.colorIndex = 6 Workbooks(book1).Sheets(sheet1).Cells("A8").FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A8,""あ*"")" .FormatConditions(1).interior.colorIndex = 6 ・・・ ・・・ ・・・ しかし、 範囲全てに対して下記の設定をしてVBAを起動 Workbooks(book1).Sheets(sheet1).Cells(色範囲).FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A7,""あ*"")" .FormatConditions(1).interior.colorIndex = 6 エクセル側でA8のセルの条件付き書式をみると、 =COUNTIF(A8,"あ*") と自動で行(列)が変わっているのかわかりません。 要は名前定義をした範囲選択、行番号選択、列番号選択どの場合でも、 左上に表示されたセル座標をCOUNTIFの文字列の引数に設定すればいいのでしょうか。 よろしくお願いいたします。

  • エクセルVBAで選択していないシートのセルコピー

    エクセルVBAで質問させてください。 現在選択していないシートから、セルの書式ごとコピーして貼り付けたいのです。 たとえば Sheets(1).Range(Cells(1, 1), Cells(4, 1)).Copy Sheets(2).Range("A1") 等とすると、Sheets(2)が選択されている状態だとエラーになってしまいます。 おそらく、Copyメソッドというのは、選択されているシートにのみ有効だからなのではないか、と思いますが、セルの値だけでなくフォントその他の書式を、別のシート(現在アクティブでない)から持ってくる方法はありますか?

  • Excel の「セルの書式設定」に関して

    Excel 2010を使用しています。セルに「5-1」と入力すると「5月1日」と表示されてしまいます。それで入力前に「セルの書式設定」を「文字列」に指定してから入力すると「5-1」と表示してくれます。ところが Web ページなどからそのままコピー&ペーストすると入力前に「セルの書式設定」を「文字列」に指定したにもかかわらず,「5月1日」となり,勝手に「セルの書式設定」が「ユーザー定義」に切り替わってしまいます。Web ページなどからコピー&ペーストしたデータを「文字列」のまま入力させる方法はありませんでしょうか?

  • セルの書式設定でメモリを節約できますか。

     約3メガバイトのエクセルシートを作成しています。 行数が8000行,列が約100列という巨大なものです。 シートの計算式などは単純ですので,オートフィルでコピーしていくのですが,オートフィルで8000行までコピーしようとするとエラーメッセージが出てしまいます。  おそらく,メモリが不足しているのではないかと考えています。  そこで,ワークシートのメモリ消費量を少しでも減らそうと考えています。思い当たるのは,セルの書式設定です。  私は,通常,セルの書式設定では,「標準」を利用しているのですが, セルの内容になっては,1または0しか表示する必要のないセルもあります。 また,数値を計算するにしても,小数点以下第2位までしか,計算させる必要のないセルが大半です。  このようなセルについて,書式を「数値」にして,「小数点以下の桁数」を少なくすれば,メモリの消費量を減らすことができるのでしょうか。  また,上記以外の方法により,巨大なワークシートを作成することができるのでしょうか。以上よろしく教示願います。

  • エクセルのセル書式設定について

    エクセルのセル書式設定について教えてください。 セルA1に 111222333 と数字を入力しました。 ちょっと見にくいので111-222-333とするために書式設定のユーザー定義で ###-###-### としました。うまくいきましたが、  A1122233B だと - がはいりません。 セルA列には英数字が入ります。見やすくするため表示のみ「-」を 表示させたいです。入力はそのまま「-」なしで入力します。 どうかお願いします。

  • Excelの「’」とセルの書式設定(文字列)の違い

    こんばんわ。 Excelの文字列表示について、教えてください。 数字を入力する際に、先頭に「'」を入力すると 文字列として入力することが出来ますが、 数字が入っているセルのセルの書式設定から 「文字列」に表示形式を変更することとの 違いはなんなんでしょうか? やり方は違うけれど、結果は同じということでしょうか? 「'」を入力すると、データが文字そのものに変わり、 表示形式を変更すると、見た目だけ(左揃えになるなど) 文字列のように見えるだけで、データは 数字のままということなんでしょうか?? また、文字列として入力された数字を Value関数で数値に変換してしまうのと セルの書式設定で「数値」に変更するというものも 同じように、違いが良く分かりません。。。 もう、頭の中が「??」だらけです。 違いを教えていただけたら・・・と思います。 どうぞよろしくお願いいたします<m(__)m>

  • 複数セルに対しての条件付書式設定

    条件付書式を設定する場合、一つのセルを選択して、「セルの値が」「~より大きい」という風に設定し、あとはコピーをすると列全体に条件付書式が設定されますよね。 これは一つのセルを指定して設定した場合、うまくいくんですけど、例えば、それぞれの列に対して条件付書式を設定したい場合、「1列目は小数点なしの設定」、「2列目は小数点第2位まで表示する設定」、「3列目はパーセンテージ表示」という風に各列ごとによっていろんな書式が設定されていた場合、1列目に条件付書式を設定したものの、2列目以降は書式のコピーではうまくいきません。 とても大きな表の場合1列ずつ条件付書式を設定していくことはとても大変なのです。 なにかいい方法はありませんか?

  • エクセルでセルの書式設定が表示されないことがある

    エクセル2002で,書式->セルででるはずの,書式設定画面がでません。無反応です。 同じシート内でも,書式設定も値の入力していないセルでは,設定画面はでます。 入力しているセルには,条件付き書式で色を偶数行・奇数行で変えています。また,折り返して表示にしてしています。 また,いつでも起こるというわけではなく,だたし一度起こると,元には帰りません。 新しいシートに,シート全体を値のみコピーして,書式設定を改めてやると,治ったのですが,また同じ症状がでてきました。

専門家に質問してみよう