No.2
- 回答日時:
一覧表と名札票はそれぞれ別シートなのでしょうか。
詳細がわからないので、そういう前提で、
一覧表の氏名にさまを加えて名札票に転記、
フォントサイズを設定する部分だけですが、
With Sheets("名札票").Cells(1, 1)
.Value = Sheets("一覧").Cells(1, 1).Value & "さま"
.Font.Size = 36
.Characters(Len(.Value) - 1, 2).Font.Size = 16
End With
↑のような感じになると思います。
教えてもらうばかりで申し訳ないので、再度私の方で行いたいことを整理し、希望に近いマクロの例を検索してきました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
'ダブルクリックで様をつける
With Target
.Value = .Value & "様" '様をつけて
.Characters(Start:=Len(.Value), Length:=1).Font.Size = _
.Font.Size - 20 'セルのフォントサイズより20つ下のサイズ
End With
End Sub
以上のマクロで、かなりよい感じにはなるのですが、"様" を"さま"に置き換えるとうまくいきません。
また、ダブルクリックしなくても、自動的に反映されるようにしたいです。
最後に、同一シートで試みていましたが、管理上別シートに分けて使用したいので、 masa_019さまの回答して下さった設定を含めたいです。
このような統合されたマクロは作成可能でしょうか?
ご教授いただけないでしょうか?
No.3
- 回答日時:
質問ですが、名札票の方は「氏名」と「さま」を絶対に同一セルにしなければならない特別な理由があるのでしょうか。
もし名札票を一人分ごとカットして名札として使われるだけなら、間に罫線を入れない限りセルを二つ使っても別に差し支えないと思いますが…………。
私も過去同じような作業をしたことがありますが、マクロなど使わずに次の方法で簡単にやっておりました。
Sheet1のA1~AXに氏名一覧表があったとすると
Sheet2のA1に
=IF(Sheet1!A1="","",Sheet1!A1) …………Font36ポイント
Sheet2のB1に
=IF(A1="","","さま") ………………………Font16ポイント
と入力しておいて、あとSheet2のA1、B1をプルダウンするだけでSheet1に入力された氏名と「さま」が表示されるので、Sheet2を板目紙にプリントし、あとカッティングして名札として使う。このような方法でやっておりました。
蛇足ですが、入力範囲にはもちろん罫線は一切入れず、板目紙をカットするとき切り目が分かりやすいように、入力セル範囲の直近周囲の行列も印刷範囲に含め、(左右上下の)切り目部分にだけ罫線を入れてプリントし、あとカッターと定規を使ってとでカットしておりました。
もしこのような方法で目的が達せられるとすれば、要点は関数やマクロなどの問題ではなくて、印刷範囲のレイアウト設定にあるような気がしますが……。(見当違いであればごめんなさい)。
ご質問内容の「氏名票」の使途や作業方法が分からないので何とも言えませんが、どうしても氏名と「さま」を同一セルにしなければならない特別な理由がある場合は、表示形式の「@"さま"」ではFontポイント数を変えることは出来ないので、masa_019さんの回答のようにマクロを組むしかないでしょう。
回答ありがとうございます。
今回は、既存の作業を快適にすることを目的としているので、どうしても根本的な所を変更できません。
そのため、「氏名」と「さま」はなんとか同一セルで出来ないでしょうか?
No.4ベストアンサー
- 回答日時:
tankob3210さん、こんにちは。
私も全くの素人なので、たいしたアドバイスはできませんが、tankob3210さんのコードを見て気づいた事を少しだけ。
.Characters(Start:=Len(.Value) , Length:=1)
のところは下のようにすれば、"様"を"さま"にしても対応できますね。
.Characters(Start:=Len(.Value) - 1, Length:=2)
また、"さま"を加える前に、文字列の長さを変数(x)に保持しておけば、
.Characters(x + 1, .Value-x)とすることで、何文字でも対応できます。
.Font.Size =.Font.Size - 20
のところは、元のフォントサイズが16や20だった場合、
エラーになるので.Font.Size =16のようにした方が良いかと・・・。
シートのBeforeDoubleClickを使うなら、
Cancel=True
を入れるとセルが編集状態になりません。
>ダブルクリックしなくても、自動的に反映されるようにしたいです
との事ですが、マクロを作動させるためのきっかけは必要ですよね、イベントを使わないならコマンドボタンに登録する等になりますよね。Targetを使えるので、Wクリックはそれなりに良い方法だと思いますけどね。あとは右クリックを使うとか。
>管理上別シートに分けて使用したい
これについても、別シートの転記先を特定できれば、可能ですね。
長々と書き連ねましたが、これ以上はシートを拝見してみないと何とも言えませんが、tankob3210さんのやりたい事は、十分実現可能と思います。
頑張ってみて下さい。
この回答への補足
回答ありがとうございます。
やはりマクロの導入は素人には非常に難しいようです。
毎夜、頑張っておりますが、思ったようになりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式について教えてください。 3 2023/01/29 10:36
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「名前(first name) 1 2023/06/24 13:03
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/10 13:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報