Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


101 / 3841 ページ ←次へ | 前へ→

【80448】Re:検索フォームの動作について
回答  tarutaru  - 19/2/16(土) 17:20 -

引用なし
パスワード
   マナ様

説明不足で申し訳ありません。
内訳は下記のとおりとなります。

ComboBox1(役職) = “部 長”,”課 長”,”係 長”,”社 員”
ComboBox3(所属) = “営 業”,”内 勤”,”配 送”
TextBox1(氏名)
ComboBox4(血液型) = “A”,”B”,”O”,”AB”,
ComboBox2(配偶者) = “有”,無”
ComboBox7(所業構成) =”文字列1”,”文字列2”,”文字列3”,”文字列4”
ComboBox8(就業形態) =”文字列1”,”文字列2”,”文字列3”,”文字列4”
TextBox2入社年月日 2000/1/1
TextBox3退社年月日 2001/1/1
TextBox5年齢(数字)※入力しても反映されていません。
TextBox6該当数(数字)
TextBox7総 数(数字)
CommandButton1(決定ボタン)
CommandButton2(抽出ボタン)
CommandButton3(RESETボタン)
ListBox1

・TextBox:6個
・ListBox:1個
・ComboBox:6個
・CommandButton:3個


Sheet(“2019.4”)の項目は、
A列は3行目から連番
(B2)役職
(C2)所属
(D2)“数字”
(E2)氏名
(F2)住所
(G2)生年月日
(H2)年齢
(I2)血液型
(J2)入社年月日
(K2)退社年月日
(L2)在職月(総数)
(M2)在職年月
(N2)連絡先1
(O2)連絡先2
(P2)職業構成
(Q2)就業形態
(R2)会社名
(S2)会社連絡先
(T2)配偶者(有無)

※Sheet(“2019.4”)上の1行目に、「入力」「検索」の2つのボタンを配置しており、それぞれのフォームが開くようにしています。Sheet3にも1行目に「一覧表」の
ボタンを配置しており、Sheet(“2019.4”)が表示されるようにしてあります。

お手数を掛けますが、よろしくお願いいたします。
・ツリー全体表示

【80447】Re:行のデータをクリアして1行づつ繰り上...
発言  マナ  - 19/2/16(土) 12:27 -

引用なし
パスワード
   ▼ノンボ さん:

>VBA実行後期待する結果は、差額が0の場合0の行をクリアさせて、下のデータを1行づつ繰り上げたいのです。差額が0でない場合は、そのままのにしたいです。

文章ではなく、サンプルデータを表形式で提示できませんか。
・ツリー全体表示

【80446】Re:行のデータをクリアして1行づつ繰り上...
発言  マナ  - 19/2/16(土) 12:09 -

引用なし
パスワード
   ▼ノンボ さん:

箇条書きで説明できますか。
わたしの場合、それが、マクロ作成で最初にすることです。
・ツリー全体表示

【80445】Re:行のデータをクリアして1行づつ繰り上...
発言  ノンボ  - 19/2/16(土) 11:57 -

引用なし
パスワード
   マナさん返信ありがとうございます。

手作業ですと、差額が0か0でないかを判断しまして、0の場合はその行をクリアさせ下の行のデータを貼り付けていきます。0でない場合はそのままでなにもしません。
VBA実行後期待する結果は、差額が0の場合0の行をクリアさせて、下のデータを1行づつ繰り上げたいのです。差額が0でない場合は、そのままのにしたいです。
 よろしくお願いします。
・ツリー全体表示

【80444】Re:分類が変わる毎に規則正しく空白行を...
発言  riki7 E-MAIL  - 19/2/16(土) 11:07 -

引用なし
パスワード
   ありがとうございます
恥ずかしながら
値が変わると空白行足すしか
マクロわからないので
これだけでは解決せず
まずは調べてみます。
・ツリー全体表示

【80443】Re:行のデータをクリアして1行づつ繰り上...
発言  マナ  - 19/2/16(土) 10:16 -

引用なし
パスワード
   ▼ノンボ さん:

>またマクロ実行前だけでなく
>実行後も提示お願いします。

文章がおかしかったです。
実行後の期待する結果も提示お願いします。
・ツリー全体表示

【80442】Re:分類が変わる毎に規則正しく空白行を...
発言  マナ  - 19/2/16(土) 10:06 -

引用なし
パスワード
   ▼riki7 さん:

>これを最終行まで、分類項目が変わる毎に空白行を以下のように挿入したいのです

条件を指定しないのであれば、できるのでしょうか?

例えば、10行目に、
空白行を1行挿入するマクロはわかるのでしょうか。
空白行を2行挿入するマクロはわかるのでしょうか。

わからなければ、まずはそこから調べてみてください。
・ツリー全体表示

【80441】Re:行のデータをクリアして1行づつ繰り上...
発言  マナ  - 19/2/16(土) 9:34 -

引用なし
パスワード
   ▼ノンボ さん:

何をしているか理解できていませんので
あらためて教えてください。

手作業でならどんな手順になりますか。
箇条書きで説明できますか。

またマクロ実行前だけでなく
実行後も提示お願いします。
・ツリー全体表示

【80440】分類が変わる毎に規則正しく空白行を入れ...
質問  riki7  - 19/2/16(土) 9:27 -

引用なし
パスワード
   /は列が変わる意味です
以下のような一覧があります
大分類/中分類/品物
1/1/1
1/1/2
1/2/1
1/2/2
1/2/3
2/1/1
これを最終行まで、分類項目が変わる毎に空白行を以下のように挿入したいのですが
どうすれば良いでしょうか
空白行(大分類)
空白行(中分類)
1/1/1
1/1/2
空白行(中分類)
1/2/1
1/2/2
1/2/3
空白行(大分類)
空白行(中分類)
2/1/1
・ツリー全体表示

【80439】Re:検索フォームの動作について
発言  マナ  - 19/2/16(土) 9:24 -

引用なし
パスワード
   ▼tarutaru さん:

「検索フォーム」は下記の構成で間違いありませんか

・Textbox:9個+2個
・Listbox:1個
・Combobox:2個
・Commandbutton:2個

 
・ツリー全体表示

【80438】行のデータをクリアして1行づつ繰り上げ...
質問  ノンボ  - 19/2/16(土) 8:11 -

引用なし
パスワード
   お世話になります。
VBA勉強中です。質問させていただきます。
下記フォーマットがあります。

1行目 本体金額  税額 合計金額 入金金額 差額
2行目  60,000  4,800 64,800  64,800   0
3行目  50,000  4,000 54,000
4行目  30,000  2,400 32,400  
5行目  50,000  4,000 54,000
6行目  35,000  2,800 37,800
7行目  30,000  2,400 32,400
8行目  25,000  2,000 27,000
9行目    0
10行目    0

タイトル行の列それぞれ結合されています。本体金額(B〜F),税額(G〜J),入金金額(K〜P),差額(U〜W). 税額、入金金額、差額には数式が入っています。
入金金額により差額が0かそうでないかを判断し、2行目から10行目までのフォーマットを崩さずに、0の場合は、行を1行ずつ繰り上げていきます。0でない場合はデータをそのままにしたく、下記コード書きました。
Sub Test5()
  Dim i As Integer, j As Integer
  j = 1
  For i = 2 To 10
  If (Range("U" & i).Rows) = 0 Then
    Rows(i).ClearContents
  End If
  If (Range("B" & i).Rows <> "") Then
    j = j + 1
    Rows(i).Copy Rows(j)
    Rows(i) = ""
  End If
  Next i
End Sub

 0の場合はうまくいきますが、差額が0でない場合は、セルの結合が解除されデータが全て消えてしまいます。セルの数式も残したいのですが、可能でしょうか。
いろいろ調べたり、試したりしましたがうまくいきません。
どのように編集すればよいかご教授ください。
・ツリー全体表示

【80437】Re:見積FMの情報を集計したい
お礼  mkmk  - 19/2/16(土) 7:44 -

引用なし
パスワード
   お礼がおそくなってすみません。

あれから、VB以外の問題も考え、FMを作り直して実行したところ
早くなりました。
何が原因かは不明なのですが・・・

SELECTを除いてすっきり早くするやり方を教えて頂いて
ありがとうございました。

▼マナ さん:
>▼mkmk さん:
>
>>ただ、速さはあまり変わらないように感じました。
>>
>
>100回のコピペなら1秒もかからないと思います。
>どのくらい時間がかかっているのでしょうか?
・ツリー全体表示

【80436】Re:数のランダム抽選のマクロについて
お礼  nori  - 19/2/15(金) 21:20 -

引用なし
パスワード
   教えていただきありがとうございました。

ほとんど、サイトからのコピペで作成していたため、boolean変数についてわかっておらず、勉強になりました。

希望通りの処理ができました。
・ツリー全体表示

【80435】Re:数のランダム抽選のマクロについて
発言  でれすけ  - 19/2/15(金) 15:21 -

引用なし
パスワード
   こんにちは

初期化って書いたので難しく考えてしまったのかもしれませんが、

配列変数 myFlag の全ての要素に Falseを代入するのです。
Forループで一つ一つの要素に順番に代入してもいいですし、
Erase ステートメントを使っても大丈夫です。

Erace myFlag
・ツリー全体表示

【80434】Re:検索フォームの動作について
回答  tarutaru  - 19/2/15(金) 14:18 -

引用なし
パスワード
   マナ様

お忙しい中、ありがとうございます。
シートの構成等は下記のとおりです。

シートは、2シート用意しており、”2019.4”,”Sheet3”(Sheet2は作成中削除しました)、レイアウトにつきましては、A列は3行目から連番を、Range(“B2:T2”)まで順に「役職・所属・(数字)・氏名・(住所)・(生年月日)・(年齢)・血液型・入社年月日・退社年月日・(在職月)・(在職年月)・(連絡先1)・(連絡先2)・職業構成・就業形態・(会社名)・(会社連絡先)・配偶者」の項目【()内の項目は入力フォームにはボックスとして配置しておりません】を入れており、3行目以降がデータとなります。

また、”2019.4”のRange(“B1”)に「入力」、Range(“C1”)に「検索」のCommandButtonを配置し、「検索」を押すと「検索フォーム」が表示され、”Sheet3”のRange(“B1”)に配置した「一覧表」のCommandButton、押すと、“2019.4”がActivateになるよう設定しています。

次に、「検索フォーム」ですが、フォーム上部に上記各入力ボックスを配置、フォーム下部(フォームの下半分)にListBox1、さらにフォーム上部には、「決定」Comb1、「抽出」Comb3、「RESET」Comb2ボタンを配置しており、「決定」ボタンで絞込後、ListBox1に表示されたリストを選択し、「抽出」ボタンを押すと”Sheet3”に抽出したデータ(List表示されているそのままのデータ)が転記され、その前のリスト選択時のリストだけ、色が変わるようにしたいのですが、上手くいきません。

「RESET」ボタンは押すと、各入力ボックスの内容が空白となり、”2019.4”が「検索フォーム」を残したまま表示されるようにしています。
更にTextBoxを2つ配置しており、TextBox6に「該当数」、TextBox7に「総数」が数字表示されるようにしています。

よろしくお願いいたします。
・ツリー全体表示

【80433】Re:数のランダム抽選のマクロについて
質問  nori  - 19/2/15(金) 9:36 -

引用なし
パスワード
   早速のお返事ありがとうございます。

頂いた内容で、昨夜調べてみたのですが、boolean 変数をどのように初期化するのかが分からずじまいでした。

お手数ですが、どのようにコード修正すればよいでしょうか。

教えて頂けると助かります。
・ツリー全体表示

【80432】Re:検索フォームの動作について
発言  マナ  - 19/2/14(木) 19:22 -

引用なし
パスワード
   ▼tarutaru さん:

シート構成と各シートのレイアウトも教えてください。
こちらで、マクロを動かして確認したいのです。
・ツリー全体表示

【80431】Re:カレンダーに予定を自動入力したい
発言  マナ  - 19/2/14(木) 19:16 -

引用なし
パスワード
   ▼VBA初心者 さん:

>カレンダーには
>エクセルの年カレンダー(1つのタブで1か月)というものを使っております。
>表示されている日数は日付のみです。


γさんの回答のように、Day(d)で検索しなくて大丈夫?
本当に、シリアル値 CLng(d)で検索ができていますか。
・ツリー全体表示

【80430】Re:数のランダム抽選のマクロについて
発言  でれすけ  - 19/2/14(木) 15:02 -

引用なし
パスワード
   こんにちは

X=8,I=2のとき、myFlagの全てがTrueになるので、
Doループの
Loop Until myFlag(myNum) = False
の行が条件を満足できなくて、永久ループになります。

Iに関するForループの最初に、
myFlagを全部Falseに初期化する処理を入れてください。
・ツリー全体表示

【80429】数のランダム抽選のマクロについて
質問  nori  - 19/2/14(木) 11:07 -

引用なし
パスワード
   vba初心者です。
趣味でロト6の抽選マクロを作ろうとしています。

見よう見まねで以下のコードを作って動かしたのですが、変数X=8 I=2の時にマクロが固まってしまいます。

どのようにコード修正をすれば正常に動くのか、調べたのですがわからずここに質問をさせていただきました。

お手数ですが、教えていただけると助かります。


Sub 数字を6個抽出()
  Dim i As Long, myNum As Long, X As Long
  Dim myFlag(1 To 43) As Boolean

For X = 1 To 20 'X=8 I=2 でエラー ??
  
  '乱数系列を初期化
  Randomize
  For i = 1 To 6
    Do
      myNum = Int(43 * Rnd + 1)
   Loop Until myFlag(myNum) = False
    
    Cells(X, i).Value = myNum
    myFlag(myNum) = True
   
  Next i
 
  '水平方向への並べ替え

  ActiveSheet.Sort.SortFields.Clear
  ActiveSheet.Sort.SortFields.Add Key:=Range("A" & X), _
      SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

  With ActiveSheet.Sort
    .SetRange Range("A" & X & ":F" & X)
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlSortRows
    .SortMethod = xlPinYin
    .Apply
  End With
    
 Next X
  
End Sub
・ツリー全体表示

101 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free