• ベストアンサー

【Excel】セルの境界線から語尾に空間を開けたい

たとえばExcelのセルで、左揃えでインデントを1に設定し、冒頭に空間をあけます。 語尾も同様に、セルの境界線とインデントを冒頭の空間の1と同じ大きさに開けたいのです。 つまり、冒頭と語尾を、それぞれのセルから1離して入力したいのですが、どうすればよいのでしょう?セルの幅を設定するしかないのでしょうか?そうしたら全角、半角の横の大きさでも決まってくると思いますが…(質問がわかりずらければ補足します) こうゆう計算はほんとに苦手で困っています。よろしくご教授ください。(ちなみにExcel2007利用です)

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.4

>というところなんですが、Ctrl+F11でそこにMacro1という名前で新しいシートが増えましたがこれでよいと思いますが、挿入→標準モジュールというのはどのタスクなのでしょう?? 申し訳ありません。 「Alt + F11」です。 「Microsoft Visual Basic」というウィンドウが開きますので、そのなかのメニューで 挿入→標準モジュールとたどってください。 [-] 標準モジュール   |   -Module1 というのが追加されればそこにコードを貼り付けてください。

noname#206454
質問者

お礼

補足ありがとうございます。 やってみました! マクロでインデントが設定できるのかと思いましたが、最初にインデントをつけてから、マクロ設定→調整しないとならないようですね。 確かに一度目の調整では列の幅は8.38mmでしたが、a - 2を追加しての調整では8.25mmでした。 ご丁寧な回答ありがとうございました。eden3616さんがみつけてくれたのはとても運が良かったです!

その他の回答 (3)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

VBAで行います。 '~~~~~~~~~~~~~~~ '■ 以下コード '~~~~~~~~~~~~~~~ Sub インデット調整() With Selection .HorizontalAlignment = xlLeft .WrapText = False .IndentLevel = 0 Columns(.Column).EntireColumn.AutoFit a = .ColumnWidth .IndentLevel = 1 Columns(.Column).EntireColumn.AutoFit b = .ColumnWidth .ColumnWidth = 2 * b - a End With End Sub '~~~~~~~~~~~~~~~ Ctrl+F11でVBEを開き、挿入→標準モジュールでモジュールを作成後、右上のペインに上記コードを張り付けてください。 VBEを閉じてから対象のセルを選択した状態でエクセルメニューの表示→マクロより「インデット調整」を実行してください 初期の列幅(列の自動調整後)を記憶してインデットを1追加したときの列幅を引いた値をセル幅に追加して幅を指定しています。 自動調整を行った場合若干セルの最後に空白があるので、その分後ろ側の空白が多く見えます。 調整をされる場合は最後から3行目の .ColumnWidth = 2 * b - a の部分を .ColumnWidth = 2 * b - a - 2 の「-2」のように減算してください ---------------------- >つまり、冒頭と語尾を、それぞれのセルから1離して入力したいのですが、どうすればよいのでしょう? 1つのセル内でということですね。 >セルの幅を設定するしかないのでしょうか?そうしたら全角、半角の横の大きさでも決まってくると思いますが…(質問がわかりずらければ補足します) 列の自動調整を行いますので全角半角変わっても問題ないとおもいます。 文字の入力をし直された際は再度このマクロを実行してください。 >こうゆう計算はほんとに苦手で困っています。よろしくご教授ください。(ちなみにExcel2007利用です) 当方の環境も2007なので動作するとおもいます。 VBAの追加の仕方わかりにくいようであれば補足いたします。

noname#206454
質問者

補足

ご回答ありがとうございます。 マ、マクロ!と思って一瞬尻込みしましたが、チャレンジしようと思ったところすでにわからないところが(^^ゞ >Ctrl+F11でVBEを開き、挿入→標準モジュールでモジュールを作成後 というところなんですが、Ctrl+F11でそこにMacro1という名前で新しいシートが増えましたがこれでよいと思いますが、挿入→標準モジュールというのはどのタスクなのでしょう??

noname#200416
noname#200416
回答No.2

横列に三つのセルを使います。左右のセルは1字分の空白セルとします。真ん中のセルに文字を入力して、「均等割り付け」にします。表の場合、三つのセルを一つのセルとして罫線を引けば、印刷した時、三つのセルを使っていることは分からないし、普通の表にしか見えません。いかがでしょうか。

noname#206454
質問者

お礼

ご回答ありがとうございます。 なるほど、このような代替方法もあるのですね。 しかし金額などを入れるので、均等割りにするのはできませんが、何かのときに参考にしますね。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

エクセルはワープロとは違うので、そういった事細かな設定はできません。 ワープロ専用ソフトのWORDを使えば、ご相談のように表の左右に適切に隙間を持たせたまま自然に入力する事もできます。 一応ご相談の直接の回答としては、 >左揃えでインデントを1に設定し、冒頭に空間をあけます。 左揃えでは無く、「均等割り付け(インデント)」を設定する事でご質問の事は出来ますが、たぶん実際に使ってみるとダメだと判ると思います。

noname#206454
質問者

お礼

ご回答ありがとうございます。 たとえばMS P ゴシックの場合で均等に端と端の間をそれぞれのセルの線からスペースを作りたかったのですが、文字といっても、英数字からひらがな、漢字まで様々ですし、そのうえフォントもありますので、そのような設定は無理かもしれないですね。

関連するQ&A