エクセルを使って開く際に証明書番号が表示される件

このQ&Aのポイント
  • エクセルを開く度に証明書番号表示の設定を行いたい場合、以下の手順を実行します。
  • まず、雛形のワークブックファイルのシート1のセルA1に数字の「0」を入力します。
  • 次に、シート1のセルB1に「W313」のテキストとA1の値を連結する計算式を入力します。
回答を見る
  • ベストアンサー

続偏 エクセルを使って開くたびに証明書番号表示の件

度々の投稿申し訳御座いません。 誤って締め切りしてしまったので質問できなくなってしまいました。 先ほど【monamucho】様からご教授頂いた表示の件、 Private Sub Workbook_Open() With Worksheets(1).Range("A1") .Value = Val(.Value) + 1 End With End Sub 2)雛形のワークブックファイルのシート1のセルA1に数字の"0"を入力します。 3)雛形のワークブックファイルのシート1のセルB1に下記の計算式を入力します。 ="W313【"&TEXT(A1,"000")&"】" 4)雛形のワークブックファイルを保存して閉じます。 5)雛形のワークブックファイルを再度開くと、セルB1の値が"W313【001】"に変わります。 6)雛形のワークブックファイルを閉じて再度開く度に連番で番号が振られていきます。 迄は、できたのですが、実際行うと余計に 1 W313001 ↑この1が付いてしまいます。 この1は必要ではなく、単純に上記のW313001⇒W313002⇒W313003 というように連番を振っていきたいのですが、 またお手数をお掛けしますが、ご教授頂ければ幸いです。 宜しく御願い致します。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

単純に「邪魔にならない箇所(セル)」にその1,2,3を符番するようマクロを修正する,あるいはA1のたとえばフォントの色を白くする・A列を1行目を隠してしまうなど,あなたの実際のエクセルのレイアウト(ご相談で情報が提供されていません)に応じて,ご自分で適切に修正を加えていくのが適当です。 まぁ,そういう事込みでとにかく丸写し以外できないというお話なら 改めて 1.ひな形ブックを開く 2.ThisWorkbookシートを開く 3.さっき教わったマクロは綺麗に消去する   ついでにA1,B1セルも消してしまう 4.改めて次のマクロをコピー貼り付ける private sub Workbook_Open()  with worksheets(1)  .range("A1") = "W313" & format(val(right(.range("A1"),3)) + 1, "000")  end with  thisworkbook.save end sub 5.ブックを保存し,閉じて,開き直して使用する。

akame_hiro
質問者

お礼

早速のご回答、有難う御座います。 早速試してみます。 その通り、丸写ししか出来なくすみません^^ ご説明頂いた領域も始めての内容でわからないことばかりです。 またご教授下さい。

akame_hiro
質問者

補足

今行いましたが、その通りうまくいきました。 補足で教えていただきたいのですが、 private sub Workbook_Open()  with worksheets(1)  .range("A1") = "02" & format(val(right(.range("A1"),3)) + 1, "000")  end with  thisworkbook.save end sub で、02が表示されず2からの表示になってしまいます。 エクセルで何か設定はあるんでしょうか? 初歩的ですみません。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>エクセルで何か設定はあるんでしょうか? ご自分でも承知されている通り、それはマクロ云々よりずいぶん以前の、エクセルの基本的な使い方についての知識が足りてない状況です。 エクセルで普段の仕事をスムーズに進めるために、もうちょっと基礎的な部分について何を使っても構いませんから勉強を進めてください。 実際にあなたのエクセルで手を動かして勉強してくださいのその1: 任意のセルに、手で 02001 と記入する →頭のゼロが消えてしまう事を確認してください。 勉強その2: 任意のセルについて、セルの書式設定の表示形式を「文字列」に変えてから、そのセルに 02002 を記入する →頭のゼロは消えずに記入できること、それから数字を入れたのにセルには「左詰め」で記入されている事を確認する 勉強その3: 任意のセルについて、セルの書式設定の表示形式のユーザー定義を選び 00000 と設定してから、そのセルに 02003 を記入する →頭のゼロは消えずに記入できること、それからセルには「右詰」で記入されることを確認する 勉強その4: その3のセルに 100 とか 029999 を記入する →頭のゼロは、表示形式で設定した桁数だけ有効なこと/しか有効ではない事を理解する。 ようやく本題: #その前に ご相談で「以前こういうマクロを教わった」のを元に続きの質問をするときは、「教わったマクロをコピーして質問する」のは絶対にやめて、「いまあなたのエクセルで実際にあなたが動かしてみたそのマクロ」をあなたのエクセルからコピーして、情報提供するように必ずしてください。 あなたが勝手に間違えて手を入れた(けど関係ないだろうと勝手に判断して情報提供しなかった)部分が原因で、問題が起きている可能性がとても高いのですから。 マクロを  .range("A1") = "'02" & format(val(right(.range("A1"),3)) + 1, "000") に修正します。 勿論、上述で勉強してもらった各種方策を組み合わせる事でも出来ます。

akame_hiro
質問者

お礼

お忙しい中、ご返信頂き有難う御座います。 おっしゃるとおり、使いこなす為の知識は少ないですね^^ こういうところで質問することがまだ慣れていないので、色々ご指導頂き非常に感謝しております。 有難う御座います。 まだ、ご教授いただいたことを早速試しながらエクセルも学んで行きたいと思います。 有難う御座います。

関連するQ&A

  • エクセルを使って開くたびに証明書番号表示したい。

    エクセルを使っています。(office2003) 仕事上証明書番号をつけなければならなく、困っています。 ひとつの雛形を元に、そのファイルが開くたびに、証明書番号がW313【001】←【】は実際つけません。 【】の中の数字をファイルを開くたびに連番で番号を振っていきたいのですがやり方がわかりません。 どうぞ教えてください、 宜しく御願い致します。

  • excel|シートのリンク方法について

    いつもお世話になります。 エクセルは2010を利用しています。 現在、下記のコードで、文字揃えを制御しています。 A1~C1は、それぞれセルが結合されています。 ---------------------------------------------------------- Sub HorizontalAndVerticalAlignmentSamp1() If Range("B1").Value = "" Then With Range("C1") .HorizontalAlignment = xlHAlignRight End With Else With Range("C1") .HorizontalAlignment = xlHAlignLeft End With End If If Range("A1").Value = "" Then With Range("B1") .HorizontalAlignment = xlHAlignRight End With Else With Range("B1") .HorizontalAlignment = xlHAlignCenter End With End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("A1:C1") <> "" Then Call HorizontalAndVerticalAlignmentSamp1 End Sub ------------------------------------------------------------------------- シート2、シート3は、A1~C1のセルがシート1とおなじように結合されています。 シート1で、A1~C1に文字を入力したら、おなじ文字と文字揃えがシート2、シート3でも反映、シート1で、A1~C1に入力されていた文字を削除すると、シート2、シート3も消えているようにしたいです。 わたしの知っている限りの範囲でがんばってみたことは シート2、シート3のA1に「=Sheet1!A1」、B1に「=Sheet1!B1」、C1に「=Sheet1!C1」と入力して シート2、シート3にも上記とおなじマクロを記述してみました。 けれど、シート1で入力しても、シート2、シート3を選択して、どこかのセルを1回選択しないと、文字揃えが反映されませんでした。 そこで、 シート1の上記マクロに Sheet2.select Sheet3.select Sheet1.select を追加してみました。 けれど、あたりまえといえばあたりまえなのですが、シート1でどこかのセルを選択するごとにシート2、シート3、シート1と画面が切り替わるようになり、画面が切り替わったあとにシート2、シート3を見てみても、文字揃えはどこかのセルを選択しないかぎりおなじく反映されませんでした。 どのようにしたらいいのかが分からず、質問いたしました。 みなさまのお知恵を借していただけますと幸いです。 どうかよろしくお願いいたします。

  • Excelの2つのシートで別のセルに同じ内容を表示する方法

    すみません。再度質問なのですが2つのシートの別(シート1のA1、シート2のB2等)のセルに 同じ内容をどちらのシートからの入力でも表示できる方法で、 その設定が数パターン(シート1のA1、シート2のB2を1つ。シート1のD4、シート2のE5等)作りたいのですが どのような設定を行ったらよろしいのでしょうか? 入力パターン1 ひな型ファイルを開きシート1のA1に「100」と入力したときに、シート2のB2に「100」と入力出来る様にする。 シート2のE5に「200」と入力したときに、シート1のD4に「200」と入力できるようにする。 入力パターン2 ひな型ファイルを開きシート2のB2に「100」と入力したときに、シート1のA1に「100」と入力出来る様にする。 シート1のD4に「200」と入力したときに、シート2のE5に「200」と入力できるようにする。 かなり複雑でわかりにくいとは思いますがよろしくお願いいたします。

  • vba セルの行頭に連番を付加

    セルの行頭に連番を付加したいので下記のようなコードを作成しました。 B列をナンバリング用の仮セルとして使いましたが 仮セルを利用しない方法はありますか ? Option Explicit Sub セル連番付加() Dim i As Long For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row With Cells(i, "B") .Value = i - 1 .NumberFormatLocal = "@" .Value = Format(.Value, "00") End With Cells(i, "C") = Cells(i, "B") & " " & Cells(i, "A") Next End Sub

  • エクセル 行の表示非表示のマクロでエラーが

    たとえば     列A  行1 2300  行2 1500  行3  500  行4  300 となっていて、ボタンを押すたびに行2~行4の表示非表示を切り替えるマクロを以下のように設定しました。   Sub ()   With Rows("2:4")   .Hidden = Not .Hidden   End With   End Sub そして、A1のセルを保護しシートを保護したところマクロにエラーが出て使えなくなりました。 解決方法はあるのでしょうか? よろしくお願いします。

  • エクセルVBA:取得したファイル情報を別シートに貼るには・・・

    いつもお世話になっています。 今エクセルVBAで指定したフォルダ内のファイル情報を取得し、sheet2に貼り付けるものを作っています。 指定したフォルダ内のファイル情報を取得するまでは分かったのですが、作ったVBAを実行するとsheet1のA2セルから自動的に貼り付けられてしまいます。 sheet2のA1セルから貼り付けるにはどうすれば良いのでしょうか?? 作ったVBAはこんな感じです。 まず、フォルダのパスを取得しA2セルへ表示します。 Sub test2()  With Application.FileDialog(msoFileDialogFolderPicker) If .Show = 0 Then Exit Sub Range("A2").Value = .SelectedItems(1) End With End Sub 次に、A2セルの値を使ってファイル名を取得しました。 Sub Test() Dim i As Long Dim pass As String pass = Range("A2").Value With Application.FileSearch .NewSearch .LookIn = pass .FileType = msoFileTypeAllFiles .SearchSubFolders = True If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Cells(i + 1, 1) = .FoundFiles(i) Cells(i + 1, 3) = FileDateTime(.FoundFiles(i)) Next i End If End With End Sub です。 長くて申し訳ありません。よろしくお願いします。

  • EXCEL VBAについて教えてください

    はじめまして。 過去ログに私のやりたいような内容を探していたらこのような下記のエクセルVBAがあったので、教えて頂きたいです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub If Target.Value = "" Then Exit Sub x = Target.Value With Application .ScreenUpdating = False .EnableEvents = False .Undo y = Target.Value Target.Value = x + y .EnableEvents = True .ScreenUpdating = True End With With Cells(ActiveSheet.Rows.Count, "C").End(xlUp) .Offset(1, 0).Value = x .Offset(1, 1).Value = Time() End With End Sub A1に入力するたびに同一セルに加算。 A1をクリアできる。 C列に入力履歴、D列に入力時間を記録。 If Target.Address <> "$A$1" Then Exit Sub の$A$1を変えることによって他のセルにも設定できる。 と、いう内容なのですが、これをたとえば同一シートのA1~E10のセルとA12~E22にも同じよう別々に処理できるように設定したいのですが、どのようにすればいいのでしょうか?ちなみにA11~E11とA23~E23は合計を表示するセルにしたいです。 Excelのバージョンは2003です。 よろしくお願い致します

  • このEXCELVBAを複数のセルにも別々に同じ処理をしたい

    はじめまして。 過去ログに私のやりたいような内容を探していたらこのような下記のエクセルVBAがあったので、 教えて頂きたいです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub If Target.Value = "" Then Exit Sub x = Target.Value With Application .ScreenUpdating = False .EnableEvents = False .Undo y = Target.Value Target.Value = x + y .EnableEvents = True .ScreenUpdating = True End With With Cells(ActiveSheet.Rows.Count, "C").End(xlUp) .Offset(1, 0).Value = x .Offset(1, 1).Value = Time() End With End Sub A1に入力するたびに同一セルに加算。 A1をクリアできる。 C列に入力履歴、D列に入力時間を記録。 If Target.Address <> "$A$1" Then Exit Sub の$A$1を変えることによって他のセルにも設定できる。 と、いう内容なのですが、これを同一シートの複数のセルにも同じよう別々に処理できるように設定したいのですが、 どのようにすればいいのでしょうか? VBAは最近始めたばかりなのでわからない事だらけです。 Excelのバージョンは2003です。 よろしくお願い致します。

  • EXCELのグラフのy軸の表示形式をマクロで変更

    アクティブシート内のすべてのグラフのy軸の目盛りの表示形式を一括で変更したいです。 またその表示形式はセルA4で指定したいと考えています。 他の質問などを参考にし、最小値や最大値などもセルの値によって変えれるように以下のコードを書きました。 Sub 一括変換() Dim co As ChartObject For Each co In ActiveSheet.ChartObjects With co.Chart With .Axes(xlValue) .MinimumScale = Range("A1").Value '最小値 .MaximumScale = Range("A2").Value '最大値 .MajorUnit = Range("A3") '目盛間隔 End With End With Next End Sub セルA4には0、0.0、0.00といった形で指定したいです。 (ユーザー定義の書き方で指定したい) マクロを記録してやってみたりもしましたが、うまくいきません。 またセルに0.0といれてもセルの書式設定が標準の場合0になってしまうので、 書式設定を文字列に変えて、0.0としてやってみましたがうまくいがず・・・。 どのような式を入れれば良いのでしょうか? EXCELのバージョンが2000なので、このバージョンで動くコードでお願いしたいです。

  • マクロが動きません

    以下のようなプログラムでC3の値が変わるたびにA10の値に1を加えていきG3,H3が両方0になったらA10の値も0にする。C5の値が変わるたびにA15の値に1を加えJ3,K3が共に0になったらC5も0にするようにしました。 しかし、動作しません。 このシートの3行目は=シート名!セル番号 という形でほかのシートのセルの値が表示されるようになっています。G3、H3、J3、K3に手動で数値を入力した場合 は動作します。 ほかのシートのセルの値を表示させたセルの値が変化しても動作させる方法はないでしょうか> Private Sub worksheet_change(ByVal target As Range) With target If .Count > 1 Then Exit Sub If IsNumeric(.Value) = False Then Exit Sub If IsEmpty(.Value) = True Then Exit Sub If Not .Row = 3 Then Exit Sub Select Case .Column Case 3 Range("A10").Value = Range("A10").Value + 1 Case 5 Range("A15").Value = Range("A15").Value + 1 End Select End With If Range("g3").Value = 0 And Rang("h3").Value = 0 Then Range("A10").Value = 0 If Range("j3").Value = 0 And Rang("k3").Value = 0 Then Range("A15").Value = 0 End Sub

専門家に質問してみよう