X



Excel VBA 質問スレ Part73
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん (ワッチョイ 4668-xJJl)
垢版 |
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0857デフォルトの名無しさん (ワッチョイ e701-p36F)
垢版 |
2021/12/11(土) 20:26:38.51ID:EpvuxOsQ0
一気に形勢逆転。
0859デフォルトの名無しさん (ワッチョイ a72d-xLgN)
垢版 |
2021/12/12(日) 12:04:50.97ID:fOYhEkbg0
ごめんなさい途中でかきこんでしまいました
VBAのコードが長いとセーブに時間がかかるとあったのでモジュールを削除してみましたが変化なし
そこで新規にbookを作ってコピペでVBAのコード他すべての要素をコピペしたら普通にセーブできたのですが
これはどういった原因が考えられるでしょうか?
ちなみに別のPCで使ってみたら普通にセーブできました
0862デフォルトの名無しさん (ワッチョイ 4768-PFkU)
垢版 |
2021/12/12(日) 13:52:38.61ID:Q+i1BsMe0
>>850
それな
で、職場で仕事がなくなる。なんだかよくわからん状態になる

>>859
ブックの中にゴミデータが溜まってる
・条件付き書式
・名前の定義
特に条件付き書式はコピペで増えるので要注意。vbaでコピペを繰り返すマクロを繰り返すうちに、恐ろしく重くなる事がたまによくある
0866デフォルトの名無しさん (ワッチョイ 7f56-kNbH)
垢版 |
2021/12/12(日) 21:54:32.69ID:2LaGAq5q0
>>837
> 一般的にデバッグはコーディングの10倍ぐらい経験や知識が必要な作業だから初心者には荷が重い


ものすごい納得がいく。プログラムの力のかなりな部分を
設計力とデバッグ力が占めてる気がする。
0869デフォルトの名無しさん (ワッチョイ 675f-p36F)
垢版 |
2021/12/12(日) 23:18:50.35ID:8ki8W4LJ0
超初心者です。
10個のブックで、それぞれのブックに同じ名前の4種類のシートがあり、
各シートのE10〜D12に入力されている値を抽出したいんですが、
1つのセルを指定するやり方しかわからず…

できれば10個のブックから一括で抜き取りたいんですけど、どう書けばいいでしょうか。
現時点でできたのはダイアログでファイルを選択して、指定のシートから1つだけ抜き出してくる方法です。
これを複数のセルを抜き出したい(可能なら複数のブック指定して抜き出したい)です。
0870デフォルトの名無しさん (スッップ Sdff-sCeO)
垢版 |
2021/12/13(月) 02:11:31.83ID:uyvq82Wrd
>>868
>>869
Ruby馬鹿
0871デフォルトの名無しさん (ワッチョイ 7fb0-ULLt)
垢版 |
2021/12/13(月) 03:17:35.02ID:XU8Ge+oP0
>>868
別のPCなら普通にセーブできるって言うから、PCの故障を疑ったんでしょう

862の回答だと、別のPCでうまくいく説明になってない

お前のほうが日本語理解できてないんじゃね?
0872デフォルトの名無しさん (ワッチョイ 87ce-xLgN)
垢版 |
2021/12/13(月) 03:32:37.10ID:fuRJ2q4u0
>>869
こんな感じで二重ループにする
ブック名やシート名は必要に応じて配列に入れておく

For Bok = 1 To 10
 For Sht = 1 To 4
  Range(" ") = Workbooks("ブック" & Bok).Worksheets("シート" & Sht).Range("D10:E12").Value
 Next
Next
0873デフォルトの名無しさん (ワッチョイ 67e6-zKou)
垢版 |
2021/12/13(月) 22:01:16.80ID:r5ZevJAL0
もう解決したかもしれんが
保存にやたら時間がかかるエクセルファイルとは自分の経験だと
非表示にされたシートに画像が貼られまくってたって事があったなvba開いてみたらシートが異常に多くて気づいた
パソコンリテラシーない人はこういうファイルを平気でメールで送ろうとするよねw
0875デフォルトの名無しさん (ドナドナー MM8f-9uXO)
垢版 |
2021/12/13(月) 22:45:39.93ID:kcZqxtmKM
ボタンのあるシートを
ボタン削除しないままシート削除して
新たにシートを作るっていうコードにしてたら
無茶苦茶ゴミが溜まってファイルが肥大化した挙げ句、
最終的にボタンを貼り付けられなくなった
0879デフォルトの名無しさん (ワッチョイ 7fda-ODP2)
垢版 |
2021/12/14(火) 18:25:23.35ID:xWxoPM4l0
ひとつに見えていても2つのボタンが重なっていることもあるぞ
0880デフォルトの名無しさん (ワッチョイ dff0-8/hI)
垢版 |
2021/12/15(水) 21:10:32.00ID:L38lsqXF0
VBAのchengeイベントで

セルB1に12、セルC1に3、と入力されたら
D1に12/3と日付が自動で出力され
かつ
C1が空白ならD1も空白
C1が文字ならD1も文字になるようにできるでしょうか?

初心者じみた質問で申し訳ありません
0886デフォルトの名無しさん (ワッチョイ 4768-PFkU)
垢版 |
2021/12/16(木) 01:36:42.92ID:B/UsaEnq0
>>883
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo finalty

'無限ループ回避
Application.EnableEvents = False

'C1セルが空白は終了処理へ
If Cells(1, 3) = "" Then GoTo finalty

'C1セルが文字列の場合は、そのまま放り込む。それ意外は日付
If WorksheetFunction.IsText(Cells(1, 3)) Then
Cells(1, 4).Value = Cells(1, 3).Value
Else
Cells(1, 4).Value = DateSerial(Year(Now()), Cells(1, 2), Cells(1, 3))
End If

'終了処理
finalty:
Application.EnableEvents = True

End Sub

とりあえず作ったけど、B1が文字列、c1が数字の時にエラーになるな
B1とC1で日付判定したほうがよかったのだろうか
0887デフォルトの名無しさん (ワッチョイ 7f8e-sCeO)
垢版 |
2021/12/16(木) 05:45:18.34ID:1S4Jwj7Q0
>>886
「できるでしょうか?」と聞かれているだけなのに引っ掛かる馬鹿
0891デフォルトの名無しさん (ブーイモ MM8f-LZWr)
垢版 |
2021/12/16(木) 07:46:05.41ID:oEqQwjzjM
そっか

>>886 だけど空白なら終了よりも空白の時は出力先も空白って条件があるから出力先にClearContentsかけた方が良さそう
その後にB1とC1をそれぞれIsNumericでTrueならB1 & "/" & C1をDatevalueで日付データにして出力先へ
あとはElseで文字列として結合して出力とかどうだろう?
0892デフォルトの名無しさん (ワッチョイ df01-JVtf)
垢版 |
2021/12/16(木) 08:42:17.59ID:Ymr34XoE0
>>886
・「C1が空白ならD1も空白」にしないといけないのにやってない
・B1, C1 以外のセルが変更された場合でも無駄な処理が走る
・Cells( ) と Cells( ).Value とバラバラ
・finalty という単語はない
0893デフォルトの名無しさん (ワッチョイ a701-4A0X)
垢版 |
2021/12/16(木) 09:06:16.32ID:80W3ywqF0
>>892
まあ多少エラーがあっても大まかな流れがわかればいいんでねえの?
後は自力だろ
特にエラー処理関連は条件がわからないとやっても無駄だし

>・finalty という単語はない
まずこっから突っ込まないと
>>880
>VBAのchengeイベントで
0895デフォルトの名無しさん (スプッッ Sd7f-5T9c)
垢版 |
2021/12/16(木) 10:48:42.97ID:ueoAX3Xed
>>883
早速のご返答ありがとうございます
とりあえずB1には文字型は入力されないので、教えて頂いた構文で試してみたいと思いますよ
スレの雰囲気悪くしてすいません
先生たちには
感謝します
0896デフォルトの名無しさん (アウアウキー Safb-ODP2)
垢版 |
2021/12/16(木) 12:11:49.85ID:CWgWh06Ba
足フェチ
0898デフォルトの名無しさん (ワッチョイ e701-w2+9)
垢版 |
2021/12/16(木) 20:27:23.55ID:Y2CVy/MB0
Gotoトラベル。
0900デフォルトの名無しさん (ワッチョイ df4f-Xngn)
垢版 |
2021/12/16(木) 21:57:52.03ID:jTOt4wzg0
VB.Netでもgotoとかgosubとかremとか残ってるんだよなぁ
いつになったらこんな負の遺産使えなくするのやら
variantとか早々に消したくせに

先にVB.Netの方が消えてしまいそうだ
0902デフォルトの名無しさん (ワッチョイ dfe6-DXiY)
垢版 |
2021/12/16(木) 22:40:48.14ID:mHaEbFg60
https://sugoikaizen.com/excel_list/vba-macro-01/
超初心者です。上のサイトを参考に非表示のシートを全表示にするようにしたいのですが、実際に使ってみるとアクティブシート?が切り替わって切り替わってチカチカしてしまいます。

その切り替わりのチカチカ、アクティブを切り替えないでシートを表示させることってできますか
0904デフォルトの名無しさん (ワッチョイ 4768-PFkU)
垢版 |
2021/12/16(木) 23:49:36.74ID:B/UsaEnq0
>>892
・「C1が空白ならD1も空白」にしないといけないのにやってない
すまん
・B1, C1 以外のセルが変更された場合でも無駄な処理が走る
ifで分岐させてinsideかInspectorでexitsubだ
・Cells( ) と Cells( ).Value とバラバラ
すまん
・finalty という単語はない
たいぽ

>>897
>Go Toとか草
vbaはエラー処理がエグいので、gotoを使う方が簡潔になる
今回のように、分岐処理が型に依存するような時はあえてエラーを発生させて、gotoでまとめる方が楽
総論としては「trycatch欲しい」だろうな
0906デフォルトの名無しさん (ラクッペペ MMe6-HGpq)
垢版 |
2021/12/17(金) 00:50:02.02ID:6ayQmUSdM
行番号はDOS自体が登場する以前のROM BASIC全盛の頃の話
Microsoft BASICの独自拡張版を各メーカーが移植して搭載してた
FDD普及後も暫くはN88 BASICなどは生き残っていたけどDOS登場後は急速に廃れていった
0912デフォルトの名無しさん (ワッチョイ be2c-TeJl)
垢版 |
2021/12/17(金) 12:43:48.01ID:tWB5K5S10
UTF-8 でも、BOM の有無で2種類ある。
先頭3バイトが「0xEF 0xBB 0xBF」なら、BOM有り

BOM有りUTF-8
BOM無しUTF-8(UTF-8N)

Windows だけはBOM有りだけど、
一般的に、Linux などのウェブではBOM無し

最近のWindowsでは、BOM無しも使えるかも知れない
0913デフォルトの名無しさん (ワッチョイ 4af0-g56a)
垢版 |
2021/12/17(金) 16:33:33.43ID:ggdkHu5b0
>>904
先日教えていただいた構文は間違いですか?
今、試したら自分のイメージに近い動作はするような感じです
後は自分で試行錯誤してみたいです

また質問してしまうかもしれませんが
自力でやってみます
0914デフォルトの名無しさん (ワッチョイ 268c-HHCY)
垢版 |
2021/12/17(金) 20:46:33.62ID:XfO8F9WV0
空白でないセルの末尾に「様」という文字列を一括追加するマクロを教えてください
置換処理も組み込んで一括で処理したいのでマクロでやりたいです
出来ればコピペで使えるとありがたいです
環境はWin10でExcel2016です
よろしくお願いします
0917デフォルトの名無しさん (ワッチョイ be8e-qezp)
垢版 |
2021/12/17(金) 21:12:38.32ID:ptO1GC2n0
いつものあいつの釣りとあまりに馬鹿過ぎる質問はお断りです
また、Excelの使い方すらわからない人はお帰りください
0918デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/17(金) 22:36:33.99ID:V6YMPjTu0
>>914
俺も>>915と同意見で、関数かオートフィルでいいと思う。常時必要なら、関数の作業列を作ってそれを参照するとか
それでもいいなら

A列が名前の場合。

Sub Macro3()
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
For i = 最終行 To 1 Step -1
If Cells(i, 1).Value <> "" Then Cells(i, 1).Value = Cells(i, 1).Value & "様"
Next
End Sub
0920デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/17(金) 22:48:52.62ID:V6YMPjTu0
>>919
まぁこれは直接書き換える案件じゃないんだよな
名前列 & (”様”|"御中")が良い

このやり方だと、最後が「様」で終わる名字があるとバグるんだよな。昔、「羽様」って顧客からクレームがあって「いいんですけどね・・・」って感じだった
まぁ、珍しい名前だしいいと思う
0921デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/17(金) 23:07:41.06ID:V6YMPjTu0
>>913
致命傷は一点

・「C1が空白ならD1も空白」にしないといけないのにやってない
以下のコードで直した

・B1, C1 以外のセルが変更された場合でも無駄な処理が走る
重い処理じゃない。どうせ入力箇所増える
重いなら>>904の内容で修正するか再度聞けば良い

・Cells( ) と Cells( ).Value とバラバラ
どうでもいい
Cells( )はCells( ).Valueに解釈される
暇なら統一すれば良い。特に意味はない

・finalty という単語はない
どうでもいい
もちろんfinalityの打ち間違えは認める
変数名なんてなんでもいい

自己弁護でもないが、そのためにも関数やクラスは影響が最小限に済むように、短くまとめる必要がある
0924デフォルトの名無しさん (ワッチョイ 4f68-FJAE)
垢版 |
2021/12/18(土) 00:00:59.23ID:K0Bjo2m80
>>921
のコード書き忘れてたわ

Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo finalty

'無限ループ回避
Application.EnableEvents = False

'C1セルが空白は終了処理へ
If Cells(1, 3) = "" Then
Cells(1, 4) = ""
GoTo finalty
End If
'C1セルが文字列の場合は、そのまま放り込む。それ意外は日付
If WorksheetFunction.IsText(Cells(1, 3)) Then
Cells(1, 4).Value = Cells(1, 3).Value
Else
Cells(1, 4).Value = DateSerial(Year(Now()), Cells(1, 2), Cells(1, 3))
End If

'終了処理
finalty:
Application.EnableEvents = True

End Sub
0925デフォルトの名無しさん (ワンミングク MMda-+zQR)
垢版 |
2021/12/18(土) 00:34:19.89ID:fI0CXnXAM
またいつものあいつに引っ掛かる馬鹿ども
0926デフォルトの名無しさん (ワッチョイ 6a4f-j66Y)
垢版 |
2021/12/18(土) 03:53:23.76ID:RSZ8HegY0
>>914
Sub hoge()
Dim targetRange As Range
Dim targetCell As Range

Set targetRange = ThisWorkbook.Sheets(Sheet1.Name).Range("A1:J10")
For Each targetCell In targetRange.Cells
If targetCell.Value <> vbNullString Then
If Right(targetCell.Value, 1) <> "様" Then
targetCell.Value = targetCell.Value & "様"
End If
End If
Next

End Sub

対象シートを変えるならSheets(Sheet1.Name)のSheet1の部分を変えてくれ
シート名じゃなくてシートのオブジェクト名であることに注意な。
今はA1から下10セル、右10セルの範囲に絞っているが、変えたければ
Range("A1:J10")の部分を変えてくれ。
0934デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 10:30:58.78ID:S/VVluSn0
量子の世界では1未満は確率的に存在するんだよ。
0939デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 14:28:51.14ID:S/VVluSn0
だいえーだいえーいえぃいえぃいえぃいえぃ。
だいえーとってもいえぃいえぃいえぃいえぃ。
↓続き。
0940デフォルトの名無しさん (ワッチョイ 0f2f-j66Y)
垢版 |
2021/12/18(土) 14:43:23.05ID:yfxR8FS90
>空白でないセルの末尾に「様」という文字列を一括追加
これ、今「様」がついてたらつけるなっていう要件じゃないんじゃね
そうじゃないなら、羽様が、羽さん様なのか羽様さんなのか区別できるデータじゃないと不可能だぜ

普通に考えて名称と敬称と分けてもつだろ
0944デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 19:06:22.48ID:S/VVluSn0
もしかしてお前らダイエー知らないの?
0946デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 20:24:25.92ID:S/VVluSn0
それはダイエーじゃなくて地獄甲子園。
0947デフォルトの名無しさん (ワッチョイ 6a01-zVPI)
垢版 |
2021/12/18(土) 21:06:03.74ID:XqEkP9jw0
もう25年前に近くのダイエーなくなってダイクマになった(もうそれもなくなってマンションになってるけど)
一駅先にグルメシティの形で残ってるけどほとんど行かない
0948デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 21:30:26.72ID:S/VVluSn0
ヒントもう無いの?
0949デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 21:39:28.14ID:S/VVluSn0
ここまでの情報で、神奈川県秦野市ではないか?と自作AIがはじき出しましたが。
あってる?
0951デフォルトの名無しさん (ワッチョイ a301-izju)
垢版 |
2021/12/18(土) 21:45:33.86ID:S/VVluSn0
おおおお!!
あってた!!
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況