- ベストアンサー
エクセルVBA 表示について
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
[Sheet2に転記]が"目的"なのか読めないので・・ただの連番生成 and 変換手段 ------生成(上書き)-------------------- Sub A列に月2桁と4桁連番生成() Dim 判定セル As Range '判定 B列入力有効のセル 見出し行 = 2 '見出し行除外 連番数字 = 1 For Each 判定セル In Columns(2).SpecialCells(xlCellTypeConstants) If 判定セル.Row > 見出し行 Then 数字4桁 = Format(連番数字, "0000") 判定セル.Offset(0, -1) = "'" & Format(Now, "YY" & 数字4桁) 連番数字 = 連番数字 + 1 End If Next End Sub -----変換--------------------------- Sub A列まとめて連番変換() Dim 連番セル As Range For Each 連番セル In Columns(1).SpecialCells(xlCellTypeConstants, xlNumbers) 連番セル = "'" & 連番⇒月2桁と4桁連番(連番セル.Value)'文字形式化 Next End Sub Function 連番⇒月2桁と4桁連番(連番数字) 連番⇒月2桁と4桁連番 = "" If Not IsNumeric(連番数字) Or IsEmpty(連番数字) Then Exit Function 数字4桁 = Format(連番数字, "0000") 連番⇒月2桁と4桁連番 = Format(Now, "YY" & 数字4桁) End Function
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんなのはいかがでしょうか? ただし、データは、全角でないと思っていますが。 Sub test_copy() Dim ThisMonth As Integer Dim myData As Variant Dim i As Long Dim CheckNum As Long ThisMonth = Month(Date) Application.ScreenUpdating = False With Worksheets("Sheet1") .Select myData = .Range("A1", Range("A65536").End(xlUp)).Value End With CheckNum = UBound(myData, 1) 'データ数 '最大値を調べる CheckNum = Application.Min(CheckNum, 9999) '最大9999 With Worksheets("Sheet2") .Range("A1").Resize(CheckNum).NumberFormat = "@" For i = 1 To CheckNum .Cells(i, 1).Value = Format$(myData(i, 1) + _ ThisMonth * 10 ^ 4, "000000") Next i End With Application.ScreenUpdating = True End Sub
- ctrlzr
- ベストアンサー率29% (18/62)
通し番号をいくつまでにしたいのかわからないので、とりあえず一番下までです。(万までいくと桁数が増えます) しかも試してないです(^^ゞ dim v dim sh as worksheet dim i as long dim m as string set sh=worksheets("sheet2") m = StrConv(format$(month(date),"00"),vbWide) v = sh.Columns("A:A").Value for i=1 to 65536 v(i,1)= m & StrConv(format$(i,"0000"),vbWide) next sh.Columns("A:A").value = v
関連するQ&A
- VBA 複数ファイルの操作
初心者のため教えてください m(__)m 現在VBAにて処理を簡単にしたいと考えております やりたいことは、同一フォルダ「TEST」に20個ほど.xlsxファイルがあります。 そのそれぞれのブックにはシートが4つに分かれており「data」という シートのA3~AU3のデータを集約.xlsmの「まとめ」というシートに転記したいです。 また、 ・追記するされる際に一番左側(A)には番号を自動で振りたい。(1.2.3.4.....) ・データはB2から貼り付け、最終行にどんどん追記されるようにしたい ・ファイルを開かずに実行したい ・最後に転記完了のメッセージを出したい いろいろとサイトで調べているのですがなかなか進まず助けて頂けると幸いです。 よろしくお願いいたします
- ベストアンサー
- Excel(エクセル)
- エクセルでデータを蓄積するVBA
蔵書管理用の一覧表です。 エクセルでデータ入力用のフォームは作ることができたのですがシートに転記するVBAをどのように書けばよいのか分かりません。 データは次々に増えていきます。 A列には番号を入力せずに自動的に番号が増えていくようにしたい。 3番まで入力済みのあとは、自動で「4」と番号が付与されて、下の行に転記されるようにしたい。 VBA初心者です。よろしくお願いします。 A B C D 番号 分類 図書名 冊数 1 文庫本 日本の歴史 3 2 週刊誌 新潮 1 3 月刊誌 月刊ゴルフ 1
- 締切済み
- オフィス系ソフト
- VBAの超初心者です。
VBAの超初心者です。 VBAでシート間の転記をしたいです。 (転記元) A B C 年月 メーカー 台数 1 2010/3 トヨタ 1 2 2010/3 ホンダ 2 3 2010/3 日産 3 これを、別シートの月別の一覧に転記したいです。 (転記先) A B C D E メーカー 1月 2月 3月 4月 1 トヨタ 5 3 1 2 日産 4 4 3 3 ホンダ 3 4 2 転記元のデータは、毎月固定の形になります(単月) 毎月横へずれていくVBAの入力方法がわかりません・・・ webで色々探したのですが、見つけることが出来ませんでした。 もし、ご存じの方がいれば教えてください。 よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 急!!Excel VBA 転記マクロを教えて下さい
Excel VBA超初心者です、 急ぎ作らなければならない資料があり、ご助力願います。 次の様な転記するアクションをコマンドボタンに設定したいです。 Sheet1の列A(先頭セルA2)に入力したデータを、 追加した(入力間違い等を除き、保存した)データ分だけ Sheet2の列B(先頭セルB3)の最終行から転記させていく。 列Aに入力したデータは、並び替えをするので (この分は、今回のVBAに含みません。入力・転記後、Sheet1で普通に並び替えをします。) 列Aと列Bのデータの順番が異なる。 以上です。 どうぞ宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル VBAの日付計算?について
現在sheet1にある表をsheet2に転記してゆくVBAを作成しております。sheet1にある日付データセルA1(日のみ)が入っているセルと月初を求めるVBA(DateSerial(Year(Date), Month(Date), 1))を加算して西暦/月/日にしたいのです。 例えば、DateSerial(Year(Date), Month(Date), 1)の答は、2005/05/01になってきます。そこに日付データセルA1が20だとすれば、表示は、2005/05/20となると思います。それをsheet2 セルA1に表示させたいのです。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- Excel VBA Find関数の使い方
下記のようなマクロを作りたいと思います。 <シート名:元データ> B列(商品番号)がA列(ファイル名)に含まれていれば、 A列のファイル名をC列(チェック)に転記するものです。 <シート名:完成形> やりたいことの完成形がこちらのシートです。 詳しいデータは画像データを添付しました。 Findを使用するところまでは調べたのですが、VBA初心者のため シンプルな方法があれば教えてください。
- ベストアンサー
- その他MS Office製品
- エクセルVBA、マクロについて教えてください。
https://box.yahoo.co.jp/guest/viewer?sid=box-l-62itttdrrgzrvsaxkvu53tmg3a-1001&uniqid=d4c90186-7ae6-4c7a-8f04-a499509147fc&viewtype=detail サンプルブックを見て頂きたいのですが、シートに分けておりますが、それぞれ別ブックとなります。 エクセルブックAにはシート1-シート10まであります。 ブックAのデータをVBAを使って、ブックBに転記したいのですが、 今はVBAがわからないため、作業列、関数を使って読み取っているのですが、検索をかけると、とても遅いため、関数を消すと早く検索が出来たため、VBAでデータを転記出来たらいいなと思っております。 いくつか条件があるのですが、 ブックAのAQ-ATが作業列としており、 ブックBのG-Uまで関数を入れております。 G4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,G$2) H4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A5,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,H$2) I4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,I$2) 同じような関数をG-Uまで入れております。 このような関数を入れております。 E4==VLOOKUP(A4,'[ブックA.xlsx]シート1'!$B:$AC,28,FALSE) この関数をなくすとAdvancedFilterが早くなるので、ここの部分を転記出来たらと考えております。 ブックAとブックBはブックAのB列のコードとブックBのA列のコードが一致すれば、転記すると言った感じです。 決まっている部分は、商品コードは重複しないのと、ブックAのB列は結合されております。 結合セルのため、作業列を使用しておりました。 ブックAの基準をかえずに転記できる方法があればおしえてください。
- 締切済み
- Excel(エクセル)
- エクセルのVBAについて
ご教授下さい。 勤怠管理表を作成しています。 個人データを入力するシートがあり、出来上がったものの中から必要な事項のみを別シートの一覧表へ転記をしたいのですが、方法がわかりません。 どなたかご教授ください。 1.転記したい事項は下記の通りです。 (1)氏名 (2)出勤 (3)公休 (4)休み (5)合計 (6)給料 2.6項目をシート名(全体)に表形式で転記 3.社員番号等はなくランダムに入力するため、一覧表へは転記のみされればOKです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 《エクセル2000》VBAの処理が遅いのはなぜ?
ここのサイトの皆さんのご協力により、何とかVBAが完成しました。 一応問題なく動いてはいるのですが、処理速度がどうも遅いように感じられます。 画面の動きを見る限りでは、時間がかかっているのはデータの転記の部分のようです。 VBAの処理の概要は「コピー元ファイルのコピー元シートから、コピー先ファイルのコピー先シートへ、セルの内容を値でコピーする」というものです。 転記箇所はたった8箇所なのに、 1.コピー先ファイルをオープン 2.コピー先シートの一番下の空白行を探す 3.8箇所を次々に転記する …という一連の処理に、20秒近くかかってしまいます。 なぜでしょうか。 転記部分のソースはこのような作りです。 '(1)コピー元ファイルのコピー元シートをアクティブにし、コピー Windows("コピー元.xls").Activate Sheets("コピー元").Activate ActiveSheet.Range("B4").Select Selection.Copy '(2)ペースト(コピー先シート、セルは選択済み…だと思います) & アクティブセル移動 Windows("コピー先.xls").Activate Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False ActiveCell.Offset(0, 4).Select Application.CutCopyMode = False なお2つのファイルはどちらもサーバ上の、同じフォルダの中にあります。 原因が思い当たる方、どうかよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで検索して内容をコピーする
VBAで検索をして内容コピーをするやり方を考えているのですが、 初心者でどうもうまくいきません。 処理の内容としては、 シート1のA列、B列とシート2のA列と一致したときに シート2のB列にある内容を シート1のC列にコピーするもの。(空白時は、とばして次の処理へ行く)
- ベストアンサー
- オフィス系ソフト