[[20090224084143]] 『入力後その直ぐ下の行に”以下余白”と自動入力したい』(sandy)  ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力後その直ぐ下の行に”以下余白”と自動入力したい』(sandy)

注文書の原紙を作成していまして、商品名を入力したらその下に自動で”以 下 余 白”と文字と文字の間にスペースをつけて、更に文字の大きさを”14”にしたものを入力させたいのですが・・・商品名入力時は文字の大きさを”11”で入力しています。どなたか、御教授お願い致します。


 ご希望のことはマクロになります。

 しかし、
 商品名を入力する列の一つ前に列を挿入し
  文字の大きさを 14 にする
   列幅を狭くする
  =IF(自行の商品名の入力が無く、一つ上に入力がある,"以 下 余 白","")
   の数式を入力
 しておくと、その様に見えると思います。

 (HANA)

HANAさん、早速の回答有り難う御座います。
実は、外注先1件1件に原紙がすでに有る状況です。(50件ほど)
出来ればその原紙の変更をせずにマクロでワンクリッックにて対応出来ないかと少々安易な希望ですがそうできればいいな・・・と考えております。
申し訳ございませんが、マクロでの対応を御教授願えませんでしょうか。宜しくお願い申し上げます。

 マクロの記録を使ってみてはどうでしょうか。
どの列に入力するのか分かりませんので、例ではA列を基準にしています。
 
1.マクロの記録開始。
2.相対参照ボタンをクリック。
3.名前ボックスにA65536と入力し、Enter。
4.Ctrl+↑を押す。
5.↓を押す。
6.以 下 余 白 と入力。
7.14ポイントに設定。
8.マクロの記録終了。
 
上記手順で生成されたコードが下記です。
 
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2009/2/24  ユーザー名 : ROUGE
'

'

    Application.Goto Reference:="R65536C1"
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "以 下 余 白"
    ActiveCell.Characters(1, 1).PhoneticCharacters = "イ"
    ActiveCell.Characters(3, 1).PhoneticCharacters = "シタ"
    ActiveCell.Characters(5, 1).PhoneticCharacters = "ヨ"
    ActiveCell.Characters(7, 1).PhoneticCharacters = "シロ"
    ActiveCell.Select
    With Selection.Font
        .Name = "MS Pゴシック"
        .Size = 14
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
End Sub
 
いらない記述を削除すると、下記になります。
 
Sub Macro1()
    Application.Goto Reference:="R65536C1"
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "以 下 余 白"
    With Selection.Font
        .Size = 14
    End With
End Sub
 
さらに簡潔にするために、ひと手間加えると、下記になります。
 
Sub Macro1()
    With Range("A65536").End(xlUp).Offset(1, 0)
        .Value = "以 下 余 白"
        .Font.Size = 14
    End With
End Sub
 
(ROUGE)

 自動入力 となると...

 1) シートタブを右クリックして[コードを表示]
 2) 右空白部分に下記コードを貼り付ける
 3) x をクリックしてシートに戻る

 A列に 商品名 を入力するとして試してください。

 Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Columns("a")) Is Nothing Then Exit Sub
 Application.EnableEvents = False
 With Range("a" & Rows.Count).End(xlUp)
     If .Value <> "以 下 余 白" Then
         Range("a1", .Cells).Font.Size = 11
         With .Offset(1)
             .Value = "以 下 余 白"
             .Font.Size = 14
         End With
     End If
 End With
 Application.EnableEvents = True
 End Sub
 (seiya)

HANAさん、ROUGEさん、seiyaさんご回答有り難うございます!
早速挑戦してみました。で、こちらの情報もれで申し訳ありませんが以下余白はBのセルで使用されていて、またそのセルの”中央揃え”で入力しています。この”中央揃え”はマクロではどう書き込んだら宜しいでしょうか?御教授願います。

 Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Columns("b")) Is Nothing Then Exit Sub
 Application.EnableEvents = False
 With Range("b" & Rows.Count).End(xlUp)
     If .Value <> "以下余白" Then
         With Range("b1", .Cells)
             .Font.Size = 11
             .HorizontalAlignment = xlGeneral
         End With
         With .Offset(1)
             .Value = "以下余白"
             .Font.Size = 14
             .HorizontalAlignment = xlDistributed
             .addIndent =True
         End With
     End If
 End With
 Application.EnableEvents = True
 End Sub
 とか?
 (seiya)

seiyaさん!早速の回答本当に感謝しています!
早速ですが、マクロを貼付たところ

.HorizontalAlignment = xlDistributed addIndent:=True

が赤文字になってx印で戻ろうとすると

”コンパイルエラー”
 ”構文エラー”

と出てきます。

あともう一息だと思います!御教授願います。


 .HorizontalAlignment = xlDistributed addIndent:=True 
 を
 .HorizontalAlignment = xlDistributed
 .AddIndent = True
 にしたら(できました)

 マクロの記録の使い方を示したつもりでしたが、伝わりませんでしたか?
 
上記手順の3.の「A65536」を「B65536」に変更し、
6.と7.の間で中央揃えを設定してあげれば、ご希望の動作になると思いますよ。
 
(ROUGE)

 >.HorizontalAlignment = xlDistributed addIndent:=True 
 > を
 > .HorizontalAlignment = xlDistributed
 > .AddIndent = True
 > にしたら(できました)

 コードを修正しておきます。
 (seiya)

seiyaさん!(T_T)
以下余白は中央揃えで完璧でした!

ところが・・・

その"以下余白"がはいるとその上のセルに書いてあった商品名がなぜか右寄せになってしまいます・・・

左寄せが希望ですが。何度も申し訳御座いませんが御教授願います。

それと、大変恐縮な質問ですが、この作業はファイル1枚1枚開いてシートタブを右クリックして"コードを表示"の部分に貼り付けて行かないといけませんでしょうか?

アイコンにマクロを貼り付けてそのボタンをクリックしたらこの作業が出来る!みたいな方法は少々むしが良すぎますでしょうか・・・


 HorizontalAlignment の定数は

 xlGeneral
 xlLeft
 xlCenter
 xlRight

 等がありますので、xlGeneralをお好きなように変更してください。
 (seiya)


seiyaさん!本当に有り難う御座いました。

お陰様で希望する内容のものが出来上がりました。

hanaさん、ROUGEさんも色々アドバイス有り難う御座いました。

ROUGEさんのマクロの記録は一番にチャレンジしてみましたが、相対参照ボタンが出てこなくて結局諦めてしまいました。

それが解決出来ていたら問題無かったと思います(T_T)

どこか、相対参照ボタンを表示させたり非表示させたり設定が出来ることろがあるのでしょうか?

でも、お陰様で問題解決です。

皆さん、本当に有り難う御座いました。


 > 相対参照ボタンが出てこなくて結局諦めてしまいました。 
 記録を開始したら、ちっさいツールバーが出ませんでしたか?
 出ていなかったら、記録を開始後、表示-->ツールバー-->記録終了 を選択すると出てきます。
 そのツールバーの右側のアイコンが相対参照ボタンです。
 (ROUGE)

 >アイコンにマクロを貼り付けてそのボタンをクリックしたらこの作業が出来る!みたいな方法
 は、ROUGEさんとseiyaさんのコードの
 大きな違いを探すと良いかもしれません。

 ROUGEさんのコードは、標準モジュールに有って
  Sub Macro1() 〜 End Sub
 の間にありましたね。

 seiyaさんのコードは、シートモジュールに有って
  Private Sub Worksheet_Change(ByVal Target As Range) 〜 End Sub
 の間にあります。

 With 〜 End With
 を移植すれば良いと思います。

 ちなみに「相対参照ボタン」は
 ↓の(3)の ■の隣のボタンです。
https://www.excel.studio-kazu.jp/lib/e4b/e4b.html

 (HANA)


ROUGEさん!HANAさん!

その小さなツールバーが何処にも表示されないんです!

以前この”マクロの記録”は使ったことがあるのでそのツールバーが出てくるのは知っていましたが、それが何処にもないんです(T_T)

表示画面の下のスタートボタンの上に”コマンド マクロの記録中”っていう文字は出ているので今記録中なんだ!と言うのはわかるんですが・・・

そのツールバーを表示したり非表示させたり出来るのでしょうか?

それから、HANAさん!私のわがままな質問にご回答頂き大変感謝しています!

"With 〜 End With

 を移植すれば良いと思います。"

を早速挑戦してみます。

本当に有り難うございます!


 >そのツールバーを表示したり非表示させたり出来るのでしょうか? 
 ROUGEさんが書いておられますので
 もう一度 書き込みをしっかり読んでいただくのが良いと思います。

 そういえば、この掲示板は 文頭に半角スペースを入れると
 空行を入れなくても改行がそのまま表示されますよ。
_←ここに 半角スペースです。

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.