ご存じかと思いますが、Excel97以降で、選択範囲内でセルの「選択範囲内で中央」書式を適用するには、「セルの書式設定」ダイアログから選ばないといけません。
結合すると何かと不便なことが多く、「選択範囲内で中央」書式を多用しているのですが、コマンドボタンもなく、マクロで対応しようとしていますが、。よくわかりません。
この問題を解決する良い方法はありませんか。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

一応マクロと云うことで。



Sub CAS()
'
' CAS Macro
' マクロ記録日 : 2001/8/9 ユーザー名 : HitomiKurose
'

'
With Selection
.HorizontalAlignment = xlCenterAcrossSelection
End With
End Sub

これをボタンなりに登録して、範囲選択してから実行!!
    • good
    • 0

キー登録でのマクロが一番だと思います。


まずは・・・
メニューバーの「ツール」→「マクロ」→「新しいマクロの記憶」
「マクロの記憶」ダイアログボックスが表示されます。
マクロ名のところには「選択範囲内で中央」(何でも良いのですが・・)
ショートカットキーのところには何でも良いのですが、とりあえず「a」と入れます。(必ず半角で)
マクロの保存先は「個人用マクロブック」を選びます。(たぶんどのブックにも使用したいのだと思いますので・・・)
そして、いよいよ登録です。
セルは絶対にクリックしないで下さい。
書式→セル→配置(タブ)→横位置を選択範囲内で中央→OK
そして、
マクロのツールバーが出ていると思いますので、記憶終了をクリックします。(四角いボタンです)
(もし、マクロのツールバーが出ていなければ、メニューのツール→マクロ→マクロの記憶終了をクリック。)

どうでしょうか?
    • good
    • 1

ツールバーに「セルを結合して中央揃え」というものがありますが、これとは違うものでしょうか?


これと同じ機能を発揮させる操作としては、「中央揃え」のツールボタンを[Shift]キーを押しながらクリックすればできます。

但し、複数の選択範囲があって、それぞれの選択範囲内で中央揃えにしたい場合は、このツールボタンでは対処できません。
別途マクロを作る必要があるようです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q○○県立中央病院というネーミングについて

○○県立中央病院というネーミングについて

茨城県立中央病院
山梨県立中央病院
香川県立中央病院
徳島県立中央病院
青森県立中央病院
山形県立中央病院
石川県立中央病院
岩手県立中央病院
新潟県立中央病院

○○県立中央病院というネーミングの病院がとても多いんですが、
「県の予算で立てた大きな病院」という意味がありそうだなというざっくりとしたイメージを持ちます。

こういう意味合いだけなら別に他の名前があってもいいのでは??と漠然と疑問に思ったのですが、
このネーミングになるのには、別の理由もあるのでしょうか。

周辺病院の協力の関連とか、予算のつき方の問題とか。。。。

ご存知でしたら教えていただければ幸いです。

Aベストアンサー

関係者ではありませんが。
「県の予算で立てた大きな病院」で概ねあっていると思います。
予算のつき方や周辺病院との協力関係も特別のものはないと思います。
必ずしも県庁所在地に位置しているわけでもないようです。

Qセルの選択範囲内で中央

エクセルにセルの選択範囲内で中央に設定するツールバーはありますか?
右クリックをして書式を選ばないとできないですか。

Aベストアンサー

横方向に複数セルを選択して、選択範囲内で中央を選ぶと結合セルのように見えるという便利コマンドですね。

2003・2007をチェックしましたが、一発コマンドはないようですね…
確かにあると便利なんですが。

QWordの中央揃えについて質問です。

Word(2007)の「中央揃え」について質問です。

Wordの編集画面で文字(全という漢字一文字)を「中央揃え」で紙面の中央に置きたいのですが、
編集画面では完全に中央に表示されているのに
印刷プレビューでは中央線から 若干 左寄りに表示されています。

印刷プレビューでも完全に中央に表示させるには、どうしたら良いですか?

因みに印刷用紙はA4ですので、紙面の中央はルーラーの118.5[mm]のラインです。(横向き印刷)
漢字のフォントは「MS ゴシック」です。
宜しくお願いします。

Aベストアンサー

テキストボックスはお使いになりますか?

テキストボックス中の 文字の中央揃えと

余白や段落に対してではなく
紙に対して
テキストボックスが中央に来るように
してみては頂けませんか?

余角サイズを変えると
文章の体裁に大きく影響を与えるので、
おいそれとは出来ないと思いますが、

これなら何にも影響を与えないので
気兼ねなく出来ると思いますよ。

なお、
テキストボックスの使い方が解らなかった場合は
インターネットで調べてくださいね。


如何でしょうか、
お役に立てていたならば幸いです。

QExcelの書式設定ダイアログボックス セルの網かけ

エクセルにおいて,セルの背景色を,
[書式]-[セル]-(セルの書式設定ダイアログボックス)[パターン]タブクリック で,「セルの網かけ 色(C):」の下に40色の塗りつぶし色カラーパレットがあります。

ここからが質問です。
その下に並んでいる16色のカラーパレットは何のためにあるのでしょうか? どのように使うのが本来の使い方ですか?
同様なカラーパレットは「パターン(P):」の右▼ボタンをクリックして現れる網掛けパターンの下にもあります。
これについても教えてください。

Aベストアンサー

こんにちは。

結論から申し上げると、ユーザー定義色を設定可能にするためです。
[ツール]-[オプション]メニューの[色]タブから、任意の色を指定することが出来ます。

こちらの[色]タブは、カラーパレットがそのまま表示されます。
すなわち、上段40色、下段16色です。

下段の16色のうち、任意の1色をクリックし、変更ボタンを押します。
40色以外の標準的な色を選択することも可能ですし、自身でRBG値を指定することも可能です。
色を変更すると、パレットにその色が反映されるようになります。

標準的な40色に対しても、任意の色を設定することが出来ますが、
こちらはあくまでも「ベースとなる色」ですから、
初期の色のままにしておくのが通常です。

なお、ユーザー定義色は設定したブックにのみ有効です。
(エクセルの初期値にはならない。)

そのため、1つのブックで作成したユーザー定義色を他のブックにコピーしたい場合は、
明示的に指定してあげる必要があります。
こちらについては、[ツール]-[オプション]メニューの[色]タブをご覧いただければイメージできると思います。

こんにちは。

結論から申し上げると、ユーザー定義色を設定可能にするためです。
[ツール]-[オプション]メニューの[色]タブから、任意の色を指定することが出来ます。

こちらの[色]タブは、カラーパレットがそのまま表示されます。
すなわち、上段40色、下段16色です。

下段の16色のうち、任意の1色をクリックし、変更ボタンを押します。
40色以外の標準的な色を選択することも可能ですし、自身でRBG値を指定することも可能です。
色を変更すると、パレットにその色が反映されるようになり...続きを読む

Qワードの表で中央揃えが出来ない

セル内の文字を垂直方向の中央揃えにしたいのですが、中央揃えになりません。
画面上でもプリントアウトしても中央揃えではなく下揃えになります。
設定は、9ポイントの文字、行を5mmの固定値、セルの配置を中央揃えにしています。また、表のプロパティからもセル、垂直方向の位置を中央揃えにしています。
なぜ、中央揃えにならないのでしょうか。何方か教えて下さい。

Aベストアンサー

Word2002以降だと、表内の段落配置が行グリッド線にあわせる設定に
なっているのでページ設定での行送り値が適用されます。
この場合だと「9ポイントの文字、行を5mmの固定値、セルの配置を中央
揃えにして」あっても、行グリッド線にあわせるために下揃えに見える
配置になってしまいます。

作成している文書で、すべての表内配置をグリッド線に合わせたくない
なら、[ツール]→[オプション]→[互換性]タブにある[オプション]にて
[表内では行の高さをグリッド線(格子)の高さに合わせる]のチェックを
外します。これで、作成中の表内ではグリッド線に合わせることが無い
のでセル配置の[中央揃え]にすることができます。

特定の表でのみ行グリッド線にあわしたくないなら、段落の書式にある
[1ページの行数を指定時に文字を行グリッド線に合わせる]のチェック
を外すことで対応します。

Q任意のセル選択範囲内のセルの名前のコレクション

任意に選択したセル範囲内のセルの名前のコレクションを取得したいと考えています。
On Error Resume Next
For Each 名前 In Selection
   処理内容
Next
On Error GoTo 0
と、すると取得することは可能なんですが、全てのセルを検索するため範囲が大きいと時間が掛かります。
Namesコレクションを利用して、セルアドレスがセル範囲に入っているか?を調べる方法も考えたのですが、これまた時間が掛かります。
どなたか?詳しい方!こんな方法もあるよ!!っての教えて頂けないでしょうか?宜しくお願い致します。

Aベストアンサー

vba_minaraiさん、こんばんは。

ご質問の最終的な目的が良く見えないので、テクニックのみの話に終始してしまいます。

ただ、実際のコーディングでは、Names(名前定義)をVBAで使う方法は避けたほうがよいです。オブジェクトブラウザで調べてみれば分りますが、曖昧な要素をもっているので、いわゆる「明示的」というVBAの前提からは外れてしまいます。

名前定義は、ある意味ワークシートの定数で、VBAでは、Formula として文字列扱いになっています。しかし、本来、Formulaは、Rangeオブジェクトなどの引数にはふさわしくありません。On Error トラップでも良いようですが、やはり見栄えが良くありません。

具体的な内容がわかりませんので納得させられないような気がしますが、通常、VBAでは、名前定義ではなく、Public Const にして、アドレスのリストを作って、配列変数にしてから、Unionでつなぐか、ローカル変数にして、個々のアドレスをUnionでつなぐかで設定します。

以下のように、Rangeオブジェクトの中に、数式文字列を入れる方法はありますが、私は、通常、このような曖昧なコードは書きません。

'-------------------------------------------
Sub NamesTesting()
Dim myName As Name
Dim ShName As String
ShName = ActiveSheet.Name
If TypeName(Selection) <> "Range" Then Exit Sub
For Each myName In Names
 If myName.RefersTo Like "=" & ShName & "!*" Then
  If Not Intersect(Range(myName.RefersToLocal), Selection) Is Nothing Then
    Range(myName.RefersToLocal).Interior.ColorIndex = 3
  End If
 End If
Next
End Sub

'-------------------------------------------

vba_minaraiさん、こんばんは。

ご質問の最終的な目的が良く見えないので、テクニックのみの話に終始してしまいます。

ただ、実際のコーディングでは、Names(名前定義)をVBAで使う方法は避けたほうがよいです。オブジェクトブラウザで調べてみれば分りますが、曖昧な要素をもっているので、いわゆる「明示的」というVBAの前提からは外れてしまいます。

名前定義は、ある意味ワークシートの定数で、VBAでは、Formula として文字列扱いになっています。しかし、本来、Formulaは、Rangeオブジェクトなどの...続きを読む

Qエクセル・ワード2010での文字の中央揃えについて

office2010を使っている者です。

まず、エクセルのセルの中での文字の中央揃えのことで伺います。
ホームのリボン→配置→中央揃えでできますが、文字の折り返しをしていた場合、2行目まで1行目と同じような形の中央揃えになってしまいます。
2行目は左端が1行目と同じ位置から、又は1行目より1文字分左側から位置が開始されるように中央揃えをすることは可能でしょうか?


次にワードでの中央揃えのことで伺いたいことがあります。
ホームのリボン→段落→中央揃えで中央ぞろえができますが、エクセルと同じ問題が発生します。
文字が1行で収まらなかった場合、エクセルと同じように2行目まで1行目と同じような形の中央揃えになってしまうのですが、2行目は左端が1行目と同じ位置から、又は1行目より1文字分左側から位置が開始されるように中央揃えをすることは可能でしょうか?
ワードの場合は、インデントで調節することが可能ですが、最初から希望する中央揃えができると便利なのですが。

よろしくお願いいたします。

Aベストアンサー

エクセルでもワードでも中央揃えのボタンでそれを行うことは不可能と思われます。
(僕が知らないだけかもしれませんが)

ご自分でも分かっている通りインデントを使うのが一番早いでしょうね。
ワードだけではなくエクセルも。

1行目の前にスペースを一個入れて
あとはインデントで真ん中まで持っていけばあなたのやりたい事は可能だと思いますょ。
インデントはそれほど面倒な作業でもないのでメンドくさがらずにやってみてください。

Qセルの書式設定ダイアログを表示するには

エクセルVBAでセルの書式設定ダイアログを表示するショートカットキーはどうやって作るのでしょうか?
罫線、配置、パターン、表示形式、フォント、保護などの個別の表示方法は知っておりますが、その上位の「セルの書式設定ダイアログ」を表示するにはどうやったらよいのでしょうか?
よろしくお願い申し上げます。

Aベストアンサー

標準のショートカットに
Ctrl+1
でありますけど...

Q立命館大学か中央大学か

現在受験生(理系)です
立命館大学と中央大学と明治大学(全て機械系)を受験したのですが立命館は合格 明治は不合格で 中央は結果待ちです
中央大学はおそらく合格だと思うのですが、その場合立命館大と中央大どちらに進学すべきでしょうか?
自分で案内を見た感じでは中央大学がいい印象を受けたのですが…
正直迷っています

出来れば学部卒での就職を考えています。
アドバイスお願いします。

Aベストアンサー

理系のことはよくわかりませんが
せっかく理系に行くわけですから、1つでも資格試験合格実績のある方へ行って取得した方が良いと思います
立命館が合格して明治が不合格ということは中央も微妙だと思います
良く言われることですが、将来関東就職なら中央、関西なら立命館
ただし、資格実績のある大学のほうが将来に展望を持てるという意味で理系の物差しは大分違います(機械系には資格は無いのでしょうか)
それと1番は就職実績の比較でしょうか

Q選択範囲のセル内の()を検出し、()内の内容を変えずに両側に特定の数のスペースを入れる方法

こんにちは、エクセルのVBAについてあまり詳しくないのでお力を貸していただけると幸いです。

具体的にしたいことは、例えばA1からB5までの範囲を選択した後にマクロを実行すると、その全セル内の()を検出し、(いぬ)などの場合には( いぬ )と両側に半角で5つずつのスペースを入れられるようなものは出来ないでしょうか?

また、1つのセル内に、(いぬ)と(ねこ)など()で囲ってあるのものが2つ以上ある場合にも( いぬ )と( ねこ )と働くようなものを作ることは可能でしょうか?

現在は( )、()内にスペースが入力されているものが入力されるマクロを使って、後々その中に手打ちして埋めている状態です。

Aベストアンサー

こんにちは。

マクロにするというのは、ユーティリティにしたいとおっしゃっていることだと思います。一回きりならともかく、何度も同じようなことが出てくるのを一瞬で変えようとする場合を想定しました。

その場合は、個人用マクロに入れて、ショートカットを設定します。

以下の場合は、正規表現にするのは、もう少し複雑な内容の可能性を想定しているからです。
  .Pattern = "[(\(](.+?)[\) )]"

そのパターンを書き換えさえすれば、いろんな対応が可能です。
また、1つの言葉に対して、スペースが5個ずつでしたら、
c.Value = .Replace(buf, "(" & Space(5) & "$1" & Space(5) & ")")
とすれば、5個になります。

括弧の中の文字を消すとか、簡単にできてしまいます。

c.Value = .Replace(buf, "(" & Space(1) & " " & Space(1) & ")")

また、少し変えることによって、括弧の中に、順に数字を入れて試験問題を作ることなどが可能です。もちろん、文章の中の括弧を意味します。

( 1 )
( 2 )
( 3 )
( 4 )( 5 )
( 6 )( 7 )( 8 )

のようなことも可能です。

'//
Sub EnterSpaces()
 Dim Rng As Range
 Dim RegEx As Object
 Dim buf As String
 Dim Ms As Object, c As Range
 If TypeName(Selection) <> "Range" Then Exit Sub
 Set Rng = Selection
 If Application.CountA(Rng) = 0 Then MsgBox "データがありません", vbExclamation: Exit Sub

 Set RegEx = CreateObject("VBScript.RegExp")
 With RegEx
  .Global = True
  .Pattern = "[(\(](.+?)[\) )]"

  For Each c In Rng
   buf = Replace(c.Value, Space(1), "")
   Set Ms = .Execute(buf)
   If Ms.Count > 0 Then
    '上書きモード
    c.Value = .Replace(buf, "(" & Space(1) & "$1" & Space(1) & ")")
   End If
  Next
 End With
End Sub

こんにちは。

マクロにするというのは、ユーティリティにしたいとおっしゃっていることだと思います。一回きりならともかく、何度も同じようなことが出てくるのを一瞬で変えようとする場合を想定しました。

その場合は、個人用マクロに入れて、ショートカットを設定します。

以下の場合は、正規表現にするのは、もう少し複雑な内容の可能性を想定しているからです。
  .Pattern = "[(\(](.+?)[\) )]"

そのパターンを書き換えさえすれば、いろんな対応が可能です。
また、1つの言葉に対して、スペースが5個...続きを読む


人気Q&Aランキング

おすすめ情報