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

この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は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • gx9wx
  • お礼率95% (440/460)

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>Cells(行, 7).Value = Sheets("9219").Range("B44") >このマクロだとA列~F列が書式設定が標準なのに文字列として表示されているのですが転記先のG列が書式設定が標準であっても12345678901234(数値が文字列と保存されています と注釈有)と同じ状態のまま転記できます。 モデルコードで検証してみました。 再入力型ではなくコピー型で変換されるのは、右辺のRangeオブジェクトのValueプロパティが省略されていることが影響しているようです。 通常はRangeオブジェクトのValueを省略しても、全く同じ結果が得られますので、私自身はあまり気にしたことはないのですが、検証してみたところ、Valueを省略すると元データと同じ書式でコピーしてくるようです(省略しないと通常のセルに入力するパターンになります)。

gx9wx
質問者

お礼

・会社のシステムはインポートするときに、 テキスト形式でエクセルにインポートする設定でエクセルファイルが できあがる ・よって書式が標準なのにもかかわらず文字列で存在できる ・そのファイルはデータがある部分はそうであるが データの無い部分は通常のエクセルの仕様で 書式が標準なら手入力するとその仕様の標準の結果になる ・マクロの書き方でセルの値をコピーする記述なら 元の値があるセルにある値をそのまま転記するので 転記先のセルの書式が標準であっても文字列のまま転記可能 ・マクロの書き方が新たに入力する書き方だと 手入力と同じなのでセルの書式どうりの結果になってしまう マクロの書き方 RangeオブジェクトのValueプロパティの事 すっきりしました。大変助かりました。 どうもありがとうございました。

gx9wx
質問者

補足

シート9219のB列の書式設定が標準だが 90105050050080のように文字列として表示されている 状態において、以下の2つのマクロを作成しました。 (1)Valueプロパティ省略 Sub 転記() Sheets("Sheet1").Select 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Sheets("9219").Range("B44") Else Cells(行, 7).Value = Sheets("9219").Range("B45") End If 行 = 行 + 1 Loop End Sub (2)Valueプロパティ省略しない Sub 転記02() Sheets("Sheet1").Select 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Sheets("9219").Range("B44").Value Else Cells(行, 7).Value = Sheets("9219").Range("B45").Value End If 行 = 行 + 1 Loop End Sub (ア)転記先のSheet1のG列の書式設定が標準のままの場合 (1)→90105050050080 セルの値と同じ書式でコピーしてくるから (2)→9.01E+13    セルに手入力したと同じ状態だから (イ)転記先のSheet1のG列の書式設定を 標準→文字列に変更してからマクロ実行の場合 (1)→90105050050080 セルの値と同じ書式でコピーかつ書式が文字列なので(※1) (2)→90105050050080 セルに手入力したと同じ状態だが書式が文字列なので となりました。すっきりしました。 ただ ※1「(イ)の(1)」はマクロ終了後にセルの書式設定が 文字列から→標準に変更されるのかと思いましたが (セルの値と同じ書式でコピ-されるから)文字列のままでした。(謎) もう片方ですが (3)5行目のValueを省いた Sub 検索02() Sheets("Sheet1").Select Line = 2 Do Until Cells(Line, 1).Value = "" On Error Resume Next Cells(Line, 2).Value = Application.WorksheetFunction.VLookup(Cells(Line, 1), Worksheets("9219").Range("A1:B1000"), 2, 0) On Error GoTo 0 If Cells(Line, 2).Value = "" Then Cells(Line, 2).Value = Cells(Line, 1) End If Line = Line + 1 Loop End Sub (4) Sub 検索() Sheets("Sheet1").Select Line = 2 Do Until Cells(Line, 1).Value = "" On Error Resume Next Cells(Line, 2).Value = Application.WorksheetFunction.VLookup(Cells(Line, 1).Value, Worksheets("9219").Range("A1:B1000"), 2, 0) On Error GoTo 0 If Cells(Line, 2).Value = "" Then Cells(Line, 2).Value = Cells(Line, 1) End If Line = Line + 1 Loop End Sub (ウ)転記先のSheet1のB列の書式設定が標準のままの場合 (3)→9.01E+13    90105050050080の予定でしたが? (4)→9.01E+13    セルに手入力したと同じ状態だから (エ)転記先のSheet1のB列の書式設定を 標準→文字列に変更してからマクロ実行の場合 (3)→90105050050080 セルの値と同じ書式でコピーかつ書式が文字列なので (4)→90105050050080 セルに手入力したと同じ状態だが書式が文字列なので こっちが分かりません。どこか記述がおかしいのでしょうか?

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>ただ ※1「(イ)の(1)」はマクロ終了後にセルの書式設定が 文字列から→標準に変更されるのかと思いましたが (セルの値と同じ書式でコピ-されるから)文字列のままでした。(謎) 文字列セルを参照する数式では、参照先の数式が自動的に変更されることがありますが、マクロで値をセルに代入しても、代入先のセルの書式設定は変更されません。 >(ウ)転記先のSheet1のB列の書式設定が標準のままの場合 (3)→9.01E+13    90105050050080の予定でしたが? そもそもワークシート関数は値だけしか取り扱えませんので、セルにその値を入力したパターンになります。 >(エ)転記先のSheet1のB列の書式設定を 標準→文字列に変更してからマクロ実行の場合 (3)→90105050050080 セルの値と同じ書式でコピーかつ書式が文字列なので (4)→90105050050080 セルに手入力したと同じ状態だが書式が文字列なので こっちが分かりません。どこか記述がおかしいのでしょうか? この部分も同じことで、文字列書式にしたセルに入力するパターンですので、文字列数字となります。

gx9wx
質問者

お礼

会社のシステムから吐き出したエクセルファイルに マクロを実装する時に、 教えていただいた事を考えて 転記先の書式を変更したり、そういう記述(できないですが) で対応します。 大変すっきりしました。 どうもありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>会社のシステムで吐き出したデータですがセルの書式設定が標準なのに文字列となっています。 おそらく、会社のシステムはインポートするときに、テキスト形式でインポートする設定になっているものと思われます。 例えばアクセスなどのデータからエクセルにエクスポートするときも、数字が文字列としてインポートされるケースが良く報告されています。 一方、エクセルで再入力したり(マクロ処理も同じ)、あるいはテキストファイルウィザードを起動せずに値貼り付けをすると(csvファイルをダブルクリックで開く)と、値入力となり、通常ではエクセルが自動判定した書式での表示となります(すなわち標準書式のセルに「1-2」と入力すると日付表示になるのと同じです)。 ところで以下のマクロコードのRange("A2")が固定されている意味がわからないのですが、それはさておきCells(行, 6)の値(表示形式ではなく実際にセルに入力されている値).が10以上ならA2セルの値を代入するというコードになっていますが、このセルの値が文字列数字の場合は、文字列はどのような数字よりも大きいと判定されてしまいますので、例えば文字列数字の「1」でも条件が成立してしまいます。 If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") いずれにしろ、上記の値を代入するマクロ処理では、A2セルの値を標準セルに再入力したパターンと同じになります(文字列で取り込みたいなら、セルの書式を文字列にしておきましょう)。 以上まとめると、エクセルのセルのコピーやエクスポートでは基本的に元データ(文字列数字ならそのまま文字列数字)がセルに取り込まれますが、csvファイルや他のアプリケーションのテキストデータの取り込みでは、テキストファイルウィザードを起動する、あるいはセルの書式を指定して形式を選択してでテキスト貼り付けするなどの処理をする必要があります。

gx9wx
質問者

お礼

例えば、システムが吐き出したデータをクリックして エクセルが起動し開かれます。シート名は9219です。 A~F列までデータがあります。800行程度です。 ワークシートを挿入します。 シート名はSheet1です。 Sheet1の セルA2に43 セルA3に44 セルA4に45 セルA5に46 と入力します。 VBEを開いて標準モジュールに以下のマクロを入れます。 Sub 検索() '2011年1月25日 '検索する対象値があるシート選択 Sheets("Sheet1").Select 'そのシートの検索開始の行数を選択2行目。 Line = 2 'そのシートの検索値の列指定1=A列。セルA2の値が検索したい値。 'その値がなくなったら検索を終了させる.Value = ""を追加。 Do Until Cells(Line, 1).Value = "" 'エラーとなっても次に進む On Error Resume Next '検索結果を記入する列を指定。Line2=B列(※1) '検索する値があるシートとその列を指定 'VLookup(Cells(Line, 1)の部分。1=A列 '検索されるシートと検索範囲を指定 'Worksheets("従業員名簿").Range("A2:B1000")→セルA2からセルB1000まで '検索されたらその行のどの列の値を結果とするのか指定 2=B列 '検索方法指定0=FALSE完全一致。 Cells(Line, 2).Value = Application.WorksheetFunction.VLookup(Cells(Line, 1).Value, Worksheets("9219").Range("A1:B1000"), 2, 0) 'VLOOKUP関数が終了又はエラーが発生したら止まる On Error GoTo 0 '検索されなかったときの処理。上記(※1)の部分Line6=F列に値がない If Cells(Line, 2).Value = "" Then 'Line6=F列にLine1=A列の値を代入 Cells(Line, 2).Value = Cells(Line, 1) End If '2行目から開始なので次の行の値を検索値とする Line = Line + 1 '検索する値がなくなるまで繰返す Loop End Sub このマクロを走らせるとSheet1の セルB2にシート9219のA列のどこかの行の値が セルB3にシート9219のA列のどこかの行の値が セルB4にシート9219のA列のどこかの行の値が セルB5にシート9219のA列のどこかの行の値が 転記されます。 でこの場合は、シート9219のA列は書式が標準で 数字14桁で入力されているので転記された値は 9.01+E 9.1E+13 という感じ指数になります。 ご指摘いただいたように 転記先のSheet1のB列を文字列にしてから マクロを走らせると 90105050050080 という風にシート9219のA列の表示と同じになります。 ですが以下のマクロ Sub 転記() Sheets("Sheet1").Select 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Sheets("9219").Range("B44") Else Cells(行, 7).Value = Sheets("9219").Range("B45") End If 行 = 行 + 1 Loop End Sub だと転記先となるSheet1のG列は 書式設定が標準であるのに 90105050050080とシート9219と同じ状態で転記され 9.01+Eなどは表示されません。 別にマクロの文内で転記先を文字列にしたり、 又は転記先のセルの書式を文字列にしておけば 解決するのですが、なぜこうなるのかがわからず すっきりしないのです。 どうもありがとうございました。

gx9wx
質問者

補足

>ところで以下のマクロコードのRange("A2")が >固定されている意味がわからないのですが、 >それはさておきCells(行, 6)の値 >(表示形式ではなく実際にセルに入力されている値).が >10以上ならA2セルの値を代入するというコードになっていますが、 >このセルの値が文字列数字の場合は、文字列はどのような数字よりも >大きいと判定されてしまいますので、 >例えば文字列数字の「1」でも条件が成立してしまいます。 申し訳ありません。私はマクロの理解度は凄く低いです。 このマクロは ・マクロによって転記してもセルの書式が標準なのに文字列となったまま転記されるか? の実験用です。 >いずれにしろ、上記の値を代入するマクロ処理では、 >A2セルの値を標準セルに再入力したパターンと同じになります >(文字列で取り込みたいなら、セルの書式を文字列にしておきましょう)。 A列~E列までデーターがあり、 それは全部セルの書式設定が標準です。 なのにもかかわらず A列は 12345678901234は 1.23457E+13では無く 12345678901234 と表記されています。先頭に ’もないです。 掲載したマクロでこのA列が全て数字で14桁であるセルA2とセルA3を G列に転記させようとして F列に上から 1 とか 12 とか 3 とか 15 とか適当に入力して この仮マクロを走らせました。 そうしたら、転記先のG列は書式設定が標準のままなのに キチンと12345678901234で転記されるのです。 掲載したマクロを見ていただけばお分かりになると思いますが、 マクロで転記先を文字列にはしていません。 私は転記先は1.23457E+13と表示されると思っていたのです。 ちなみにF列はF5行目まで数値を入力しました。 G2~G5まで転記がされました。 12345678901234とか 77777777778888 となっています。 で仮マクロが走ったあとなのでG6以降は空白です。 試しにセルG6に手入力で 12345678901234としたら 1.23457E+13になってしまいました。 書式は標準のままです。 マクロもこのA列をいったん配列に取り込んでから 別セルに書き出しとかにすると 上記の例の場合 12345678901234は転記先が標準ならば 1.23457E+13となります。 これが疑問です。

  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.1

ちょっとうろ覚えなんですが・・・。 AccessやOracleなどで「文字列」と定義されたテーブルを直接Excelで読み込むと、そういう現象が起きたような・・・。

gx9wx
質問者

お礼

このデータはシステムが ネットワークの指定フォルダに 夜間バッチでエクセルファイルで 自動作成されます。 エクセルファイルなのでそのままクリックしてエクセルが 起動して開いています。 ありがとうございました。

関連するQ&A

  • 【Excel】セルの書式設定で標準と文字列の違い

    「セルの書式設定」の「表示形式」での「標準」と「文字列」の違いについてです。 「文字列」は「[文字列]は、数値も文字列として扱います。セルには入力した値がそのまま表示されます」 とあります。 しかし「文字列」に数値を入力するとセルの左上に、グリーンの▼印がでてきて、「数値が文字列として保存されています」というエラー表示がでます。 数値も文字列として扱われるはずですがなぜなのでしょう。いちいち「エラーを無視する」にしなければならないので面倒だなと思いますので、今度は「標準」で入力しようと思いますが、 「標準」は「セルの値に対して一般の書式を適用します(特定の書式を指定しません)」 とのことです。一般の書式、特定の書式が何を指すのか分かりません。 文字列が、数値として扱われない理由と、「標準」「文字列」のそれぞれの特徴を教えてください。

  • エクセル2002 文字列で作成のセルを標準に

    エクセル2002  5000行程の参照シートからVLOOKUPで検索した数値を表にし合計をする作業をしています。参照シートは全てを文字列に設定したものです。☆(゜o゜ (多分0を入れたい為 全てを文字列設定にしています)。 上記シートをVLOOKUPで検索した数値をはりつけると すべて文字列になっています。 ・元シートのせいか? ・私の設定方が悪く 何かミラクル設定方法があるのか教えて下さい。 書式設定で標準に戻しても 関数入らず(そのセルさえ文字列になっています) 区切り位置 → 完了で訂正しますが シート全体を 書式設定 標準にでき 関数が入る方法はないでしょうか? 修正すると・・・文字列に戻っていたりします。 説明下手で申し訳ありませんが いい方法があればご教授お願いします。

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

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

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

    エクセル2007のセルの書式設定について 標準で、2015/11/12と表示、数値でも、日付でも、文字列でも同じように2015/11/12と表示されるセルがあります。 これをきちんと日付として2015/11/12と表示させ、数値としても本来の42320と表示させたいです。 ご存知のかた教えてください。 標準で、2015/11/12と表示 数値でも、日付でも、文字列でも同じように2015/11/12と表示されるセルがあります。 これをきちんと日付として2015/11/12と表示させ、数値としても本来の42320と表示させたいです。 ご存知のかた教えてください。

  • 【excel】セル内の選択文字列の書式設定

    excelにて、 セル内の選択文字列の書式をいつも手動で決まった形式に変更しています。 具体的にいうと、1個のセル内で 前半は通常の書式設定(10pt&太字)ですが、 後半から8pt&標準の太さという風です。 この途中からの書式変更の作業をマクロ登録で簡略できないものかと思ってやってみたのですが、 1個のセル全体の書式はマクロ登録できるのですが、 選択文字列の登録ができません。 書式によってセルを別個にすれば問題ないのでしょうが、それはできれば避けたくて。。。 拙い説明になってしまいましたが、 どうかお知恵を拝借させていただきたいと存じます。 よろしくお願いいたします。

  • EXCEL2007でセルの書式が勝手に変わっている

    会社でエクセル2007を使用していますが 保存したファイルを再度開くと、保存時に書式が標準であったセルや 数値であったセルが、全て日付に変わってしまいます。 特に変わった操作はしていないと思うのですが・・・ 保存形式は2007のxlsxです。 A列からBA列までの53列X1500行の表で 関数はSUMなどの合計(10列x1000行、書式は会計)と、 商品名表示の参照関数(1列X1000行、書式は標準)と 売上月の振分に配列関数(12列X1500行、書式は会計) 程度入力してあり、 他は入力規則でリストから選ぶ列(書式は標準、数値) のみのシート内容です。 そのシートが合計9シート有り、他にリスト用のシートと 9シート分の集計シートが1シートの構成です。 ファイルサイズは約7MBです。 説明できる内容はこの位になってしまいますが 何か原因が判ればご教示お願いしたいと思います。 よろしくお願いいたします。

  • Excel VBAで、様々な書式設定のセルをyyyymmddの文字列に

    Excel VBAで、様々な書式設定のセルをyyyymmddの文字列にしたい dim i Columns("A:B").NumberFormatLocal = "@" For i = 1 To 5 If Cells(i, 1)NumberFormat = "@" Then Cells(i, 2) = Aells(i, 1).text Else Cells(i, 2) = Application.text(cells(i, "1"), "yyyymmdd") End If Next Excel VBAで、様々な書式設定のセルをyyyymmddの文字列にしたいのですが・・ 上記のソースを書いた場合、文字列・日付・ユーザ定義などの書式設定ではうまくいきますが、標準で19990101などと入力されていた場合はエラーになってしまいます。 どのように直せばうまくいくのでしょうか? よろしくお願いします。

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

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

  • VBAでセルデータの転記(文字列)

    VBAでセルのデータを下記のように他のセルに持っていく場合、文字として入れてある数字(例えば先頭に0がつくようなもの)は、自動的に数値に変えられて0が消えてしまいます。 また、長いものは指数表示になってしまい、15桁を超えるものは後ろが0になってしまいます。 持っていく先のセルを文字列に設定しておけばいいのでしょうが、持っていく元データが全て文字列ではなく、数値の場合もあります。 元データが数値であれば数値として、文字列であれば文字列として持っていくにはどうすればいいのでしょうか? Sub test() Cells(3, 3).Value = Cells(1, 1).Value End Sub

  • 別シートの行を選択し対象列を転記するマクロ

    シート2のA~F列までデータがあります。 行数は10,000行です。(月ごとに100行くらい追加されます。) A列は項目がNO.で半角数字が連番で入力されてます。 セルA2→1 セルA3→2 セルA4→3 . . . セルA10000→9999 セルA10001→10000 という感じです。 シート1の セルI9に番号を入力すると シート2のその番号の行のB~F列の値を シート1のJ9~N9列に転記したいです。 例えば シート1のセルI9に100と入力したら、 シート2のA列が100と入力されているセルはA101ですから 101行目となります。101行目の各列の値を転記します。 ↓ シート1のセルJ9にシート2のセルB101の値を転記 シート1のセルK9にシート2のセルC101の値を転記 シート1のセルL9にシート2のセルD101の値を転記 シート1のセルM9にシート2のセルE101の値を転記 シート1のセルN9にシート2のセルF101の値を転記 シート1もシート2もセルの書式設定は標準。 B,E,F列は半角英数字の組み合わせで C,D列は半角数字のみです。 たまにF列に空白がある行があります。 B,F列は数字のみの場合もあります。 B,C,D,F列は数字のみの場合 「数値が文字列として入力されています」 となっています。 マクロで行いたいのですが記述そのものを教えてください。

専門家に質問してみよう