この人頭いいなと思ったエピソード

例えば三段のセルを結合して、その中に三段分の長い文章を打ち込んで、「折り返して全体を表示する」と、一つの白い大きいセルの中に文章全文が三段に折り返して表示されますが、その文章に罫線を引いて三段に分けたいのです。試してみましたが「セルの書式設定」ではできないようです。どうすればセルの中に罫線を引けますか?

質問者からの補足コメント

  • うーん・・・

    皆さんありがとうございます。例えばの「三段」は「三行三列」のことです。説明不足で申し分けありません。

      補足日時:2016/02/15 21:24
  • HAPPY

    皆さんありがとうございました。色んな方法を学習させて頂きました。VBAがパーフェクトでとても良かったんですが、私にはVBAは使えなくて残念でした。

      補足日時:2016/02/17 10:09

A 回答 (12件中1~10件)

No.5の回答者です。


> 「三段」は「三行三列」のことです。
難しい課題ですね。

他の回答者さんも書いているように、図形の[直線]を使わないで罫線を
引けるのは、三行を結合していない場合だけですよね。

列においても、3列を結合していると[文字の割り付け]が使えません。
この場合は、列の結合も解除するなどして、[文字の割り付け]を三列に
配置するように、他の方法を検討するしかないと思います。

私なりの考えた方法:

三行三列の範囲で結合してある状態を解除します。
これで左上だけに入力した文章が残ります。

三行三列を選択して、[セルの書式設定]の[配置]タブを開きます。
[横位置]のプルダウンメニューから[選択範囲内で中央]を選択します。
左上から複数列にまたがっていた文章が、最初の行の三列のみになり、
文章の前後が見えない状態になったと思います。
その状態で[文字の割り付け]を実行。
三列内での三行に文字が割り付けられたと思います。

罫線を行単位で点線で設定。これで希望している三段という状態になり、
結合されなくても配置できていると思います。
このままだと最終行の文字列が中央配置のままなので、[横位置]に設定
されている[選択範囲内で中央]を[標準]などに戻します。

たぶん、これで希望していることと同じになると思います。
「エクセル2010で、結合したセルの中に罫」の回答画像12
    • good
    • 2
この回答へのお礼

ありがとうございました。できました。難点はセルの幅を変えた時に文字列が自動的には調整されないことですね。文章が完成した後にこの方法ですると良いと思いました。

お礼日時:2016/02/17 10:02

No.4です。



No.8さんのお礼欄に
>文章と文章の中間に点線を引きたいのですが
とありますが、
どうしてもExcelでないとダメなのですか?
細かい体裁を整えたい場合はWordにはかなわないと思います。
Excelは表計算ソフトですので、表の細かい加工は不得手です。

どうしてもとなれば前回同様VBAになりますが、
前回のSample1を消去し、↓のコードに変更してみてください。

Sub Sample1() 'この行から//
Dim k As Long, cnt As Long, c As Range
Set c = Selection
cnt = c.Rows.Count
For k = 1 To cnt - 1
With Shapes.AddLine(c.Left, c.Top + c.Height / cnt * k, c.Left + c.Width, c.Top + c.Height / cnt * k).Line
.ForeColor.RGB = vbBlack
.DashStyle = msoLineDash '←追加★
.Weight = 0.5
End With
Next k
End Sub 'この行まで//

なんとかこれで破線が表示されると思います。m(_ _)m
    • good
    • 2
この回答へのお礼

ありがとうございます。エクセルで作られた定型文書に入力しています。VBAを使えるとなんでもできて便利そうですね。楽しいでしょうね。

お礼日時:2016/02/16 08:33

No.6です。



> 例えばの「三段」は「三行三列」のことです。説明不足で申し分けありません。

それでしたら、
手順 2.の 『セルを結合したセルの結合を解除します。』だけを次のように変更してください。
(その他の手順はすべて同じです。)

結合されたセルを選択して、「ホーム」タブの「配置」グループにある「セルを結合して中央揃え」の直ぐ右にある▼を押して、「横方向に結合」を選択しますと、横方向に3個のセルが結合された3行のセルに変わります。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2016/02/16 20:25

No.3の方法で線をちょっとだけセルの右端から飛び出させてください。


これでセルの幅を変えても線は追従してくれます。
    • good
    • 0
この回答へのお礼

細かいところまでありがとうございます。さらに拡大して作業するとやりやすいと思いました。

お礼日時:2016/02/16 08:29

①そのセルを右クリックする


②「セルの書式設定」を選択する
③メニュー「フォント」を選択後、サブメニューの「下線」から文字の下に引きたい線の種類を選択します。
    • good
    • 0
この回答へのお礼

ありがとうございました。文字の下線ではなく、文章と文章の中間に点線を引きたいのですが。

お礼日時:2016/02/15 21:30

①そのセルを右クリックする


②「セルの書式設定」をクリックする
③「フォント」を選択し、下線から文字の下に引く線を選択する
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2016/02/15 21:31

結合したセルに罫線は引けませんので、結合していないセルの上に、問題のセルの内容を画像としてリンク貼り付けしては如何でしょう?



その操作例を下記します。

1. 同じSheetの邪魔にならない場所 または 別なSheetの任意の場所に、接合したセルをコピペして、罫線なしに設定しておきます。
(単に、そのSheetをコピーするだけでも良いと思います。)

2. セルを結合したセルの結合を解除します。

3. 「クイック アクセス ツールバー」に「カメラ」ボタンを表示します。

「カメラボタン」
http://hamachan.info/excel/kamera.html

4. 結合したセルを選択して、「カメラ」ボタンを押しますと、セルをコピーした時と同様の点滅する破線が表示され、マウスポインタが小さな十字に変化します。

5. マウスポインタを結合したセルの左上の罫線の交点に重ね、[Alt]キー押しながら、クリックしますと、画像が貼り付けされます。

6. 最後に、貼り付けられた図が貼り付けられた状態で、「図ツール」-「書式」の「図のスタイル」グループの右端にある小さな四角形(ダイアログボックス 起動ボタン)をクリックして、表示されるダイアロブボックスの左窓にある「塗りつぶし」で、「塗りつぶしなし」に、「線の色」で、「線なし」を設定して「閉じる」ボタンを押します。
(画像で隠れた罫線が見えるようになります。)
    • good
    • 0
この回答へのお礼

ありがとうございました。カメラがあるんですね。場面によっては便利に使えそうですね。元のセルを消去すると新たなセルも消去されてしまうので、元のセルをどこかにとっておかなければならないのが難点だと思いました。

お礼日時:2016/02/16 08:28

三段とは、三行一列のセル範囲という意味ですよね。


これを結合して折り返しする方法でないと駄目ですか?

Excelの機能にある[文字の割り付け]を使う方法なら、希望していることに
近いと思います。
http://ciao.aoten.jp/ciao/2012/03/post-d2c6.html
http://hamachan.info/win7/Excel/warituke.html
http://www4.synapse.ne.jp/yone/excel2010/excel20 …
    • good
    • 0
この回答へのお礼

ありがとうございました。こんな方法もあるんですね。ただ例えば三行三列ですので「結合されたセルの一部を変更することはできません。」との表示が出てしまいました。

お礼日時:2016/02/15 21:20

こんばんは!



VBAになりますが一例です。
オートシェイプの直線をセル上に配置する方法です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim k As Long, cnt As Long, c As Range
Set c = Selection
cnt = c.Rows.Count
For k = 1 To cnt - 1
With Shapes.AddLine(c.Left, c.Top + c.Height / cnt * k, c.Left + c.Width, c.Top + c.Height / cnt * k).Line
.ForeColor.RGB = vbBlack
.Weight = 0.5
End With
Next k
End Sub 'この行まで//

※ 必ず結合されているセルを選択し、マクロを実行してください。
※ 仮に3行結合している場合、3行の文字列が入力されているという前提です。
(何行結合されていても構いません)

尚、消去するコードも必要だと思いますので、
同じVBA画面の前述のコードが記載されている行の下に
↓のコードを追加し、「削除」のマクロを実行すると
直線が消えます。

Sub 削除()
Dim mySp As Shape, myRng As Range
Set myRng = Selection
For Each mySp In ActiveSheet.Shapes
If mySp.Top >= myRng.Top And mySp.Top <= myRng.Top + myRng.Height Then
If mySp.Left >= myRng.Left And mySp.Left + mySp.Width <= myRng.Left + myRng.Width Then
mySp.Delete
End If
End If
Next mySp
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました。すごい技術ですね。

お礼日時:2016/02/15 21:15

セル内に図形(線)を挿入すればセルの幅を変化させても線の長さはセル幅と同期します。

文字は縦位置を上詰めにしておけばいいです。
    • good
    • 0
この回答へのお礼

ありがとうございました。できました。

お礼日時:2016/02/15 21:15

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A