• ベストアンサー

エクセル 入力規則 貼付しても規則が変わらないようにするには?

どなたかよろしくお願いします。 複数の営業所の売上を一つのエクセルシートに貼り付け、それを集計しています。 テンプレートでは入力規則で設定しているのですが、どうしても各人の入力方法がまちまちで、アルファベットを入力する列が全角・半角・太字になっていたり、数字の列が文字列になっていたりとバラバラなので、毎回直しています。なので貼り付けられても書式を統一出来ればと思います。 僕はあまり詳しくないのですが、入力規則でこの列は「半角英数字」と設定していても貼り付けたらそれになってしまうので、貼り付けられても書式が変わらないように、もしくはテンプレートの段階で書式を変更出来ないようにするにはVBAなどで設定すればそれは回避できるのでしょうか。 お手数ですが、よろしくお願い致します。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.5

#4です >B列 半角数字 >C・H・K列 半角英字 B・C・H・K列を処理対象にしました 数値と英字の区別がありますが、考慮していません B列ですが、数字以外の入力があった場合にどうする? 条件が曖昧なので、対象列に半角に変換できる全角文字・数字が入力された場合は、半角に変換するのままです >共通:フォントサイズ 14 標準 文字黒・背景色なし これはExcelの機能の「スタイル」をマクロで適応しているだけなので 簡単な「スタイル」の設定方法のみにします [Alt]+[O](オーです) [ALT]+[S] スタイルの設定画面が開きます スタイル名を「コピペ」としてください (マクロの中でスタイル名「コピペ」を使用するように変更したため) 変更ボタンで各項目の設定をする 各項目の設定後、スタイルの設定画面で変更の必要の無いチェックボックスのチェックを外す (今回は、フォントとパターン以外のチェックを外す) 追加で追加し、OKで終了してください 下記のコードを#4のものと入れ替える Private Sub Worksheet_Change(ByVal Target As Range) '指定範囲外は処理を中止 If Intersect(Target, Range("b:b,c:c,h:h,k:k")) Is Nothing Then Exit Sub Application.EnableEvents = False Dim Rng As Range '複数セルを選択している場合に単一セルごとに処理 For Each Rng In Target '単一セルが処理対象なら処理開始 If Not Intersect(Rng, Range("b:b,c:c,h:h,k:k")) Is Nothing Then Rng.Style = "コピペ"  'スタイル名コピペを適用(書式) Rng = StrConv(Rng, vbNarrow)  '全角⇒半角変換 Rng.Value = Rng.Value  '文字数字⇒数値変換 End If Next Rng Application.EnableEvents = True End Sub 必ず、スタイルを設定し、スタイル名をコピペとすること

その他の回答 (4)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

直接入力やコピペをしても 全角英数⇒半角英数 文字列の数字⇒数値 以下は新規にBookを作成した時の「セルの書式」と同じ 表示形式、配置、フォント、罫線、パターン、保護 設定が戻ります 「セルの書式」で設定できるものであれば、変更も可能 シートモジュールに下のコードをコピペ (対象のシートタブを右クリック-コードの表示を選択すると、シートモジュールが表示されます) VBE画面を閉じる Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("a:a")) Is Nothing Then Exit Sub Application.EnableEvents = False Dim Rng As Range For Each Rng In Target If Not Intersect(Rng, Range("a:a")) Is Nothing Then Rng.Style = "Normal" Rng = StrConv(Rng, vbNarrow) Rng.Value = Rng.Value End If Next Rng Application.EnableEvents = True End Sub 詳細がないのでA列のみを対象にしています ためしに、A列以外に全角英数、セルに色づけ、フォントを太字、サイズを20などにした データを作成し、コピーしてA列に貼り付けてみて

hotrod7020
質問者

お礼

hige_082さん、有難うございます。 早速の情報提供有難うございます。こんなことが出来るのだと、感動しております。イメージ的にはまさにこんな感じです。 詳細を記入していませんでした。すいません。 今出来たらいいなと思うのは、 B列 半角数字 C・H・K列 半角英字 共通:フォントサイズ 14 標準 文字黒・背景色なし ※但し2行目に漢字で項目を入れています お手数かけますが、お答え頂ける範囲で構いませんので、 よろしくお願い致します。  

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

No1です。 ご質問の内容を、まったく勘違いしてしまってました。 最初の方法では一般の書式は維持されますが、No2様のおっしゃるように半角、全角などの変換はできません。 大変失礼しました。無視してください。

hotrod7020
質問者

お礼

ご意見有難うございます。当方無知なので、非常に参考になりました。

  • takesun
  • ベストアンサー率40% (22/54)
回答No.2

あとからのコピー&ペーストだけでは、 全角⇔半角の変換はできませんので難しいですよね。 お使いの環境(ファイル)がどうなっているか分かりませんけど VBAでそのシート自体コピー&ペーストを禁止するとかは どうでしょうか。 該当のシートタブを右クリックして、コードの表示で以下を貼り付け て見てください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If (Application.CutCopyMode <> False) Then Application.CutCopyMode = False End If End Sub

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

入力する人が多数の人の場合、ルールを徹底するのはなかなか難しいですよね。 以下の方法で可能だと思いますが、その方法を全員に徹底するのは同じように無理でしょうから、とりあえず、今のまま受け取って、質問者様の修正手間を減らすという方向での回答ですが… 新しく書式設定済みのシートに、対象部分を全部コピーして移動します。 その際に、「貼り付け」-「形式を選択して貼り付け」で「値」を選んで張り付ければ、書式はコピーされません。 単純に1回のコピー、ペーストですが、量が多いとそれでも面倒かも知れません。 その場合は、↑の作業をマクロ化(VBA)しておくことで、さらに簡単になります。 範囲を選択して、1回分のコピー、ペースト分のマクロなので、マクロ事体はそれほど難しいものではないと思います。

hotrod7020
質問者

お礼

早速のご回答有難うございます。 多数いるとなかなかいうことを聞いてもらえないので、コチラがうまく出来る方法を取るしかないと考えました(笑)。 VBAにトライしてみます。

関連するQ&A

  • エクセルの入力規則(できますか?)

    ネットワーク上で共有しているエクセルファイルがあります。 このファイルは複数の人間が入力するため、独自の入力規則を設けているのですが全く守られていません。 これらを防ぐため(入力規則を守るため)、特定の文字を入力するとアラートを表示させることはできますか? 具体的には「全角の英数字及び記号(スペースも含む)」、「半角のカナ」を入力させたくありません。 入力規則や禁止他、何でも良いので方法を教えていただけないでしょうか? よろしくお願いいたします。

  • EXCELの入力規則について

    EXCEL2000で作業しています。 その列にはメールアドレスを入力するので、 入力規則で「半角英数字」にしました。 しかし、ピリオドを入力すると 日本語に変換してしまうのです。 (「okweb.ne.jp」にしたいのに 「おけうぇb。根。jp」になってしまう。) どうしてでしょうか。

  • エクセル 入力規則

    エクセルでB列に郵便番号を入力できるよう、入力規則で日本語入力をオフにし、数字を入れたところB2は半角数字、B3は全角数字となってしまいます。何故でしょう? 入力規正の日本語入力オフにした以外は、何も設定したいないはずなんですが・・・ よろしくお願いします。

  • Excel2010で入力規則の日本語入力が効かない

    OS・・・Windows XP IME・・・Baidu IME Excel2010について質問です。 会社のパソコンで、Excel2010を使って社員名簿を作成しています。 表の一行目に氏名・ローマ字表記・所属部署・社内メールアドレスなどの項目があり、項目の列ごとに氏名の列は「ひらがな」、ローマ字表記の列は「半角英数」などの入力規則を設定したいのですが、「データ⇒入力規則⇒日本語入力タブ」で日本語入力を変更しても、変更が効きません。 具体的には、「ひらがな(またはオン)」設定にした列から「半角英数字(またはオフ、無効)」に設定した列に移動した時は、IMEの入力モードが「あ」から「_A」へ変わるのですが、逆に「半角英数字」の列から「ひらがな」の列に移動した時は、入力モードが「_A」のままになってしまい、半角/全角キーでモードを変えないといけません。 BaiduIMEとMicrosoftの相性の問題でしょうか。MS IMEも入っているのですが、できればBaiduのほうを使いたいと思っています。 どうすればうまく設定できるでしょうか。 アドバイスをお願いします。

  • Excelの半角英数字の入力について

    Excelで、あるセル、又は行全体に入力するときに半角、全角の入力にかかわらず、入力したものは必ず半角に変わるようにするにはどうすればいいでしょうか? また、漢字かつ英数字の混合文字列に対して、英数字だけは、全角で入力しても半角に変えてくれるようにするにはどうすればいいでしょうか?

  • EXCELでの入力について・・・

    初歩的なことかも知れませんが教えてください。 EXCELなんですが、全角で入力されている英数字を、列でまとめて半角に変換することって可能ですか?

  • エクセルの入力規則について

    初投稿です。 現在仕事で商品を管理するためにエクセルで管理表を作成しているのですが データ入力が不特定多数の人で行われるためセルに入力規則をしたいと考えております。 規制かけたい項目は ○入力文字数7桁、半角英数字固定 ○入力可能文字列 0000001から9999999の間で重複不可 ○全角、半角スペースの入力不可 セル範囲は B8からI41 です。 自分なりに調べてはみたのですが、この項目すべてをセルに適用させることができずに困っています。 どなたか詳しい人教えてくださると助かります。 よろしくお願いします。 使用環境 OS : win7 ソフト : Microsoft office excel 2013

  • Excel2003 強烈な入力規則

    お世話になります。 表題の件でご相談が御座います。 「通常の入力規則」ではなく、「強烈な入力規則」の方法を模索しています。 通常の入力規則では、例え「半角英数」という設定をしていても「全角英数」をコピペで貼り付けたら 全角のまま貼り付けられてしまいますよね? これを「半角でないと貼り付けられない」では手間がかかり困るので、「半角にして張り付けてしまう」ぐらいの 強力な入力規則の方法を探しております。 そんな方法は御座いませんでしょうか? ご存知の方がいらっしゃいましたら ご教示ください。 宜しくお願い致します。

  • EXCEL入力規則で文字数制限

    EXCEL2002です。 A列に入力規則をかけ、全角20文字、半角40文字以内にしたいと思っています。 「エクセル技道場→入力規則→全角5文字、半角10文字」を参考にさせていただき、以下の式で入力規則のユーザー設定を行いました。 =AND(ISTEXT(A1),LENB(A1)<=40) この場合、最初の文字が半角の場合に制限数以下でもエラーメッセージが出てしまいます。 最初の文字が全角でも半角でも制限数以下であればエラーメッセージが出ないようにする方法はありますか? よろしくお願いします。 http://www2.odn.ne.jp/excel/waza/validation.html#SEC10

  • エクセル 入力規則設定方法

    エクセルA1セルの入力規則設定方法を教えてください。 設定内容は、 半角カナ、英数字のみ入力可能で、かつ、20文字以内にしたいです。 宜しくお願いします。

専門家に質問してみよう