• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでの条件別左右揃えについて)

エクセルでの条件別左右揃え方法

このQ&Aのポイント
  • エクセルで条件別に左揃え、右揃えをする方法について解説します。
  • シート名「入力」のA1セルが数字の場合、シート名「出力」のA1セルを右揃えにする方法と、文字列の場合は左揃えにする方法を説明します。
  • シート名「入力」のA1セルに入力された内容をシート名「出力」のA1セルに転記するための関数として、「=入力!A1」を使用します。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

> 「=入力!A1 & "人"」として「◯人」となるようにしています。後ろに文字が付くことから、文字列になってしまいます。 No.3の方法を試してみてください。

ankle
質問者

お礼

kkkkkmさん、いつもお世話になっております。 教えていただいたVBAを基本に実際使用しているエクセルに当てはめて少し手直しし実行したところ、おかげさまで今回も希望どおりの動きになりました。 いつも助けていただき、ありがとうございます。 今後とも、どうぞよろしくお願いいたします。

その他の回答 (4)

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

数字(数値)と文字列を&で結合してしまうと、「全体が文字列となるので」、質問の現象は当たり前です。 持ってきた受け手のセルの方の、表示形式を設定して(ユーザー定義を使うことになる)n人に見えるようにすべきです。セルの値は数値のままで、書式の設定で影響を受けない。エクセルのセルの見えて居る値について、セルの値と、見た目とは違うものだという認識ができてない質問者が多い。 画面を作るレイヤーが違うのだろうと想像している。 セルの書式設定-ユ―ザー定義ー  #"人" これで右詰めのままです。「=Sheet1!A1を入れたセル」のことです。

ankle
質問者

お礼

imogasiさん、何度もお教えいただきありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

No.2の追加です。 もともとセルの設定で右寄せ左寄せが設定されていた場合、No.2は有効ではありませんので、その場合以下の方法が考えられます。 入力シートのチェンイベントで Private Sub Worksheet_Change(ByVal Target As Range) If Target <> Range("A1") Then Exit Sub End If Application.EnableEvents = False If IsNumeric(Range("A1")) Then Sheets("出力").Range("A1").HorizontalAlignment = xlRight Else Sheets("出力").Range("A1").HorizontalAlignment = xlLeft End If Application.EnableEvents = True End Sub

ankle
質問者

補足

kkkkkmさん、いつも助けていただきありがとうございます。 今日は用事がありこの時間で帰宅しますので、お教えいただいたVBAは明日試してみます。 結果も明日ご報告しますので、よろしくお願いいたします。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

【例】の状態でしたら表示形式が標準のままでしたら何も設定しなくても、左揃え、右揃えはその状態になると思いますが、あえて条件付き書式でやるとしたら たとえば 「出力」のA1セルの表示形式を「数値」にしておいて 「出力」のA1セルの条件つき書式で 数式を =ISNUMBER(入力!A1)=FALSE で書式の表示形式を「文字列」にするという方法も考えられます。 また、元の書式設定が何であっても(たとえば日付の設定になっていても) 上記の設定に加えて =ISNUMBER(入力!A1)=TRUE で書式の表示形式を「数値」にしておけば 【例】のような状態になります。

ankle
質問者

補足

kkkkkmさん、いつもお世話になっております。  すみません、もう一つお伝えすることを失念しておりました。  確かに数字だと右揃えに、文字列だと左揃えに自然となりますが、if関数を使用して数字を入力した際は 「=入力!A1 & "人"」として「◯人」となるようにしています。後ろに文字が付くことから、文字列になってしまいます。  この「◯人」となった場合、右揃えにしたいと考えております。  すみませんが、もう一度ご教示をお願いいたします。

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

やってみたけど、値が文字列の場合は左詰め、数字の場合は右詰めになりましたが 。 代入の=を使い他シート参照でテストしました。例 =Sheet1!A1 質問者のシート側で、何か特別な事情(設定など)はありませんか。

ankle
質問者

お礼

imogasiさん、いろいろとお教えいただき、ありがとうございます。 特別な設定はしていないつもりですが、よく見てみます。

ankle
質問者

補足

imogasiさん、いつもお世話になっております。  すみません、もう一つお伝えすることを失念しておりました。  確かに数字だと右揃えに、文字列だと左揃えに自然となりますが、if関数を使用して数字を入力した際は 「=入力!A1 & "人"」として「◯人」となるようにしています。後ろに文字が付くことから、文字列になってしまいます。  この「◯人」となった場合、右揃えにしたいと考えております。  すみませんが、もう一度ご教示をお願いいたします。

関連するQ&A