• ベストアンサー

エクセルで名札を作りたい

エクセルで氏名の一覧表と名札票を同時作成したいと思っています。 ポイントとしては、一覧表に氏名を載せ、それを名札票に自動的に転記させたいのです。 注意点としては、名札票には、氏名転記(フォント;36)して、その後すぐに『さま(フォント;16)』を自動的に差し込むという所です。 『さま』に関しては、同一セルに氏名フォントを-20して、挿入したいです。マクロの設定が必要になると思われますが、どうしてもうまくいきません。 どなたかご教授下さい。宜しくお願いします。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答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さんのやりたい事は、十分実現可能と思います。 頑張ってみて下さい。

tankob3210
質問者

補足

回答ありがとうございます。 やはりマクロの導入は素人には非常に難しいようです。 毎夜、頑張っておりますが、思ったようになりません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • zenjee
  • ベストアンサー率47% (50/106)
回答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さんの回答のようにマクロを組むしかないでしょう。

tankob3210
質問者

お礼

回答ありがとうございます。 今回は、既存の作業を快適にすることを目的としているので、どうしても根本的な所を変更できません。 そのため、「氏名」と「さま」はなんとか同一セルで出来ないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • masa_019
  • ベストアンサー率61% (121/197)
回答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 ↑のような感じになると思います。

tankob3210
質問者

お礼

教えてもらうばかりで申し訳ないので、再度私の方で行いたいことを整理し、希望に近いマクロの例を検索してきました。 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.1

Wordのソフトが入っているなら、名札はWordの差込み印刷を利用された方がフォントやデザインでの自由度も高くなりますのでご検討されてはいかがでしょうか。 エクセルで作られた一覧表はそのまま使えると思います。

tankob3210
質問者

お礼

早速の回答ありがとうございます。 今回に限っては、既存の名札票を利用しなければいけないので、Wordは使用不可なのです。 私もWordを試してみたいと思っているのですが・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Word2007で名札を差込印刷

    Word2007で名札を差込印刷したいと思っています。 EXCELでA1セルに 出身校と B1セルに 氏名と入力し、A列に 出身校を、B列に氏名を60人ほど入力しました。 差込文書リボンを開き、ラベルアイコンをクリックして、エーワン名詞用紙10A-20の設定を行い、差し込みフィールドの挿入をkリックして、最初の1枚目(最上段左のカード)に 出身校と氏名の位置を決め、フォントとサイズはホームリボンで選択して作成しました。結果のプレビューを見ましたが、満足できるものになりました。 しかし 2人目以降のデータを自動的にカードに読み込む方法がどうしてもわかりません。 始めて差込印刷をやっていますので詳しくお教えください。 易しく解説したサイトをご存知でしたら ご紹介ください。

  • エクセルの関数で 別の表からデータを転記したい

    エクセルで作った表の 社員名の項目のセルに 別で作ってある社員名簿の表より 社員名と社員コードを転記して印刷を自動で社員分の表をつくりたい。 データを転記する関数の使い方 と 転記したら印刷する そして次の社員を転記、印刷・・・と社員名簿の人数分 繰り返しをさせるための関数 もしくはマクロの組み方を教えて欲しいです。 エクセルは、関数、マクロ以外の基本的なことは使えますが、関数やマクロはほとんどわかりません。多分、関数やマクロが使えたら簡単に出来るように思うんですが・・ よろしくお願いいたします。

  • 集計表の作成(自動転記)

    集計表への自動転記の方法を教えてください。 方法は可能であれば関数を用いた方法でお願い致します。 マクロを使用して作成する場合でも構いません。 ※1枚目の画像 完成後の集計表となります。 データ一覧(CSV)より、データを集計し、結果を転記する。 売上(2)については、指定のセルを転記するのではなく、 別にある対象リストに該当するもののみを集計し、転記する。 ※2枚目の画像 データ一覧(CSV)です。 よろしくお願い致します。

  • ExcelのIF関数を使って

    学校の成績一覧表を作っています。成績は◎、○、△の3段階でつけます。 一覧表の中に、◎と△だけをつければ、残りの空白セルには、マクロで○が入るようにしてあります。 Excelのバージョンは2003です。 しかし、クラスによって人数が違うので、自動的に○が入るようにしてあっても、どこまで入れたらいいのかは変わってきます。 そこで、氏名を入れるセルを参照し、「もし、このセルが空白だったら、その下のセルはすべて空白になる」というような関数を入れておけばいいのかなと考えました。が、その関数がわかりません。 どなたか、教えてもらえませんでしょうか?           C1  D1  E1  F1  G1・・・・・            伊   佐  鈴  山           藤   藤  木  田   B2   読む力    ○  ◎  △  ◎    B3   書く力     ◎  ○  ○  △ 分かりにくいでしょうが、上のような感じで作ってます。 上の場合、G1セルに名前が入っていないので、G2セルから下は、マクロでは○が入りますが、関数によって空白にしたいのです。 よろしくお願いします。

  • エクセルVBAでVLookupを使って値を転記する

    エクセル2003で商品の一覧表を作成しています。 Sheet1は商品一覧(左図) Sheet2は価格表(右図)となっています。 マクロを使用して、Sheet1のB列に価格表のデータを転記させたいと考えています。 VLookupになるのかと思い、自分でいろいろとやってみたのですが、 どうしても動作せず、挫折してしまいました。 商品一覧の最後の行までいって、空白セルがくると止まるというのが、 難しくてできませんでした。 どうかお願いいたします。

  • エクセルのVBAについて

    ご教授下さい。 勤怠管理表を作成しています。 個人データを入力するシートがあり、出来上がったものの中から必要な事項のみを別シートの一覧表へ転記をしたいのですが、方法がわかりません。 どなたかご教授ください。 1.転記したい事項は下記の通りです。 (1)氏名 (2)出勤 (3)公休 (4)休み (5)合計 (6)給料 2.6項目をシート名(全体)に表形式で転記 3.社員番号等はなくランダムに入力するため、一覧表へは転記のみされればOKです。 よろしくお願いします。

  • Excel「予定表から土日だけ抜いて一覧表示」

    Excelで予定表をつくっています。あるセルに西暦、あるセルに月を入れる事で自動生成されるもので、それはできているのですが、その日付から、土日だけを抜き出し別途一覧表にする必要があります。 マクロを使わず実現できるでしょうか。 よろしくお願いいたします。

  • エクセル マクロ 別シートへ自動転記

    お世話になります。 エクセルで元データシート(一覧表シート)からアルファベット毎に自動で別シートに転記したいのでですがマクロをどうやって作ればいいでしょうか?(出来ればファイルを開けた時に自動更新してほしいのですが。。) 基準になるのはローマ字でかかれている部品名で、それをアルファベットごとのシートに自動に転記されるようにしたいです。データはどんどん追加されていきます。 元データは以下のとおりです。 *データはB5セルから始まっています。  部品名  詳細  金額  ・・・  A56785 ねじ  ¥30   高田(株)  B13575 棒   \500 安田 C59975 柵 \200 鈴木(株)   以上よろしくお願いします。

  • エクセルで、フォントのポイント数を変える方法?

    大変難しい課題で困っています。 エクセルで、セルに入力されている文章があったとして、その文章がセル内に一杯になったとき(つまり、セル内の文字数がある一定以上になったとき)、自動的にセルの書式のフォントのポイント数を1つ下げて全体を表示するような関数や条件付き書式はないでしょうか?(マクロを使えばできるそうですが、マクロを使わない方法)

  • エクセルの自動転記について

    エクセル2003です。 行動予定一覧表を作成中です。 シート1に一覧表 シート2には日付別になっており、 その日付別のを一覧表に自動転記させたいと思っています。 画像をご覧になっていただくのが解りやすいと思うのですが、 項目は、一覧表も日付別も同じものです。 ただ、一覧表にはシート2では欄がなかった日付を加えたいのですが、 これも計算式にて表示出来たらと思っています。 一覧表には、日付別シートの表の中で空欄の場合は、転記されないようにしたいのですが、 可能でしょうか? VBAは苦手なので、出来れば計算式で乗り切りたいと思っています。 何かいい案等があれば教えていただきたいです。 よろしくお願いします。

専門家に質問してみよう