!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part74
https://mevius.5ch.net/test/read.cgi/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part75
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd7f-wadS)
2022/02/09(水) 14:24:32.62ID:I0u44nFvd269デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/02/28(月) 08:33:28.33ID:o5ZgQ4pV0 >>268
これ以上はやめて差し上げろ
これ以上はやめて差し上げろ
270デフォルトの名無しさん (テテンテンテン MM86-jC74)
2022/02/28(月) 18:59:30.44ID:h1aqAX/2M すいません。 こういうのはできますか?
セルの中に改行を見つけてから止める(修正)するVBAをつくりました。
改行が見つかったら、マクロを止めて手修正をして又マクロを走らせてを繰り返します。
ここで、問題なのが改行ならいいのですが、文字が多くて折り返しになっているのがたまにあります。
それも見つけたいのですが、知恵がみつかりません。
折り返し判定みたいなのはあまりなさそうです。 それとも行の高さを判定できるなら高さ22以上とか方法があるのかな?と
すいませんが、こんなのは?ってありましたら、お願いします。
Sub test()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
Dim row_shou As Long
row_shou = Range("A14:D150").Find("小 計").Row
Dim Target As Range
Set Target = Range(Rows(14), Rows(row_shou - 1)).Find(What:=vbLf)
If Not Target Is Nothing Then
End
End If
Next Ws
End Sub
セルの中に改行を見つけてから止める(修正)するVBAをつくりました。
改行が見つかったら、マクロを止めて手修正をして又マクロを走らせてを繰り返します。
ここで、問題なのが改行ならいいのですが、文字が多くて折り返しになっているのがたまにあります。
それも見つけたいのですが、知恵がみつかりません。
折り返し判定みたいなのはあまりなさそうです。 それとも行の高さを判定できるなら高さ22以上とか方法があるのかな?と
すいませんが、こんなのは?ってありましたら、お願いします。
Sub test()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
Dim row_shou As Long
row_shou = Range("A14:D150").Find("小 計").Row
Dim Target As Range
Set Target = Range(Rows(14), Rows(row_shou - 1)).Find(What:=vbLf)
If Not Target Is Nothing Then
End
End If
Next Ws
End Sub
271デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/02/28(月) 19:29:28.20ID:o5ZgQ4pV0 >>270
一行以外を全て検出したいなら、行の高さを検出するだけで終わると思う
改行は調べなくてもいいような
Sub foo()
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
基本の行の高さ = Cells(1, 1).RowHeight
For i = 1 To 最終行
If Cells(i, 1).RowHeight <> 基本の行の高さ Then
MsgBox i & "行目の高さがおかしいので、終了します。修正お願いします"
Exit Sub
End If
Next
End Sub
一行以外を全て検出したいなら、行の高さを検出するだけで終わると思う
改行は調べなくてもいいような
Sub foo()
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
基本の行の高さ = Cells(1, 1).RowHeight
For i = 1 To 最終行
If Cells(i, 1).RowHeight <> 基本の行の高さ Then
MsgBox i & "行目の高さがおかしいので、終了します。修正お願いします"
Exit Sub
End If
Next
End Sub
272デフォルトの名無しさん (テテンテンテン MM86-jC74)
2022/02/28(月) 20:20:02.79ID:h1aqAX/2M >>271
あ、あ、ありがとう
正直解読するのに一時間くらいかかって自分のに書き直せました。
一応動いていけそうです! 高さチェックでいけますね
こんなチンケな感じになりました。
神々に感謝します。
Sub test()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
Dim row_shou As Long
row_shou = Range("A14:D150").Find("小 計").Row
'行の高さ15以上を検索
h = 15
For i = 14 To row_shou - 1
If Cells(i, 1).RowHeight > h Then
Exit Sub
End If
Next
Next Ws
End Sub
あ、あ、ありがとう
正直解読するのに一時間くらいかかって自分のに書き直せました。
一応動いていけそうです! 高さチェックでいけますね
こんなチンケな感じになりました。
神々に感謝します。
Sub test()
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
Dim row_shou As Long
row_shou = Range("A14:D150").Find("小 計").Row
'行の高さ15以上を検索
h = 15
For i = 14 To row_shou - 1
If Cells(i, 1).RowHeight > h Then
Exit Sub
End If
Next
Next Ws
End Sub
273デフォルトの名無しさん (スプッッ Sd8a-SZxA)
2022/02/28(月) 21:56:13.38ID:1x7bPtTEd ぶっちゃけFindは滅多やたら使わん方が良いけどまあ良かったじゃん
274デフォルトの名無しさん (ワッチョイ b301-hvk0)
2022/03/01(火) 18:55:07.17ID:gFYHZAxx0 なんでもスレだと更新が少なく答えがもらえなさそうなので、こちらにも書き込んですみません。
Excel VBAで質問です。
現在開いているシートにマクロボタンを作り、実行させると…
現在シートのB列に検索値
別のシート(ABC)のB列の5行目〜400行目までを検索して一致したセル番号が欲しいのですが
For cnt=1 To 10 samsu(cnt)=WorksheetFunction.Match(Cells(cnt,1),Worksheets(”ABC”).Range(Cells(5,1),Cells(400,1)),0)
…
next
このMatch関数の正しい書き方を教えてもらいたいのですが。
Excel VBAで質問です。
現在開いているシートにマクロボタンを作り、実行させると…
現在シートのB列に検索値
別のシート(ABC)のB列の5行目〜400行目までを検索して一致したセル番号が欲しいのですが
For cnt=1 To 10 samsu(cnt)=WorksheetFunction.Match(Cells(cnt,1),Worksheets(”ABC”).Range(Cells(5,1),Cells(400,1)),0)
…
next
このMatch関数の正しい書き方を教えてもらいたいのですが。
275デフォルトの名無しさん (スフッ Sdea-SZxA)
2022/03/01(火) 22:29:13.54ID:Nv0Sds8Bd ちゃんと見ていないが、とりあえず.cellsの前にも全部ワークシートを指定しよう
276デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/02(水) 07:23:43.88ID:bacADaAbd どっちでも好きな方をどうぞ
samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range(Worksheets("ABC").Cells(5, 2), Worksheets("ABC").Cells(400, 2)), 0)
samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range("B5:B400"), 0)
samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range(Worksheets("ABC").Cells(5, 2), Worksheets("ABC").Cells(400, 2)), 0)
samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range("B5:B400"), 0)
277デフォルトの名無しさん (ワッチョイ cb01-DMF9)
2022/03/02(水) 18:02:30.94ID:Dpz5qFA70 質問です
社員毎に月々の残業時間の合計プログラムを作っています
合計した数値に対して、30分で切り上げ切り捨てしています(会社の残業規定に則り)
(例えば、月4:10の残業であれば4:00として出力、月4:35であるば5:00として出力)
合計した数値に対してFloor関数を使って切り上げ切り捨てをしているのですが、
月23:30の残業をした社員がいた場合、出力された値が0になってしまいます
表示形式を[h]にしてみましたが、結果は変わりません
デバックでFloor関数の中の変数の値を確認しましたら、23:30のシリアル値はきちんと入っています
そうするとFloor関数で切り上げしているのが原因なのでしょうか?
どなたかご教示いただきたいです…
社員毎に月々の残業時間の合計プログラムを作っています
合計した数値に対して、30分で切り上げ切り捨てしています(会社の残業規定に則り)
(例えば、月4:10の残業であれば4:00として出力、月4:35であるば5:00として出力)
合計した数値に対してFloor関数を使って切り上げ切り捨てをしているのですが、
月23:30の残業をした社員がいた場合、出力された値が0になってしまいます
表示形式を[h]にしてみましたが、結果は変わりません
デバックでFloor関数の中の変数の値を確認しましたら、23:30のシリアル値はきちんと入っています
そうするとFloor関数で切り上げしているのが原因なのでしょうか?
どなたかご教示いただきたいです…
278デフォルトの名無しさん (ワッチョイ cb01-DMF9)
2022/03/02(水) 18:09:09.52ID:Dpz5qFA70 簡潔ですが、以下のようなコードで書いています
.cells(1,1).NumberFormatLocal = "[h]"
a = "23:30"
.cells(1,1) = Application.Floor(a + TimeValue("0:30"),TimeValue("1:00"))
.cells(1,1).NumberFormatLocal = "[h]"
a = "23:30"
.cells(1,1) = Application.Floor(a + TimeValue("0:30"),TimeValue("1:00"))
279デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/02(水) 18:13:22.97ID:ydQ1ic0a0 >>277
mroundで1:00単位でいいんじゃない
https://i.imgur.com/igLdP9C.png
>>278
24と表示されたよ。そのままだとエラーになるので、2行目はtimevalueにいれた
https://i.imgur.com/a54wsnQ.png
mroundで1:00単位でいいんじゃない
https://i.imgur.com/igLdP9C.png
>>278
24と表示されたよ。そのままだとエラーになるので、2行目はtimevalueにいれた
https://i.imgur.com/a54wsnQ.png
280デフォルトの名無しさん (ワッチョイ cb01-DMF9)
2022/03/02(水) 18:43:03.81ID:Dpz5qFA70 >>279
MRoundにしてみたらできました!
ありがとうございます!
TimeValueについて書き損じ失礼しました
本来は"23:30"ではなく変数が入っていて、変数には23:30のシリアル値が入っています
なぜ0になってしまうのか謎ですが解決してよかったです
MRoundにしてみたらできました!
ありがとうございます!
TimeValueについて書き損じ失礼しました
本来は"23:30"ではなく変数が入っていて、変数には23:30のシリアル値が入っています
なぜ0になってしまうのか謎ですが解決してよかったです
281デフォルトの名無しさん (アウアウウー Sa2f-B9J1)
2022/03/02(水) 19:19:22.93ID:n7HPCvTSa 23時の次は24時ではなく0時だからだわな
282デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/02(水) 19:25:50.55ID:ydQ1ic0a0 >>281
いや、書式設定が[h]なら24と表示されるはず
いや、書式設定が[h]なら24と表示されるはず
283デフォルトの名無しさん (オッペケ Sr03-+p5u)
2022/03/03(木) 07:42:09.33ID:LvEeINitr284デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 13:47:21.71ID:KJVc8U50M 質問をさせていただきます。 理解ができないことがあります。
まず、加工BOOK と マクロ保存BOOK の二種類を使用しています。
加工BOOKにある複数のシートを連続して加工するときにネット情報で下記書き方を拾いました。
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
〜色々な動作〜
Next Ws
この「色々な動作」の中で
ThisWorkbook.Activate ’マクロ保存BOOKをアクティブ(シート指定セル指定してコピーを取ってます)
その後、Ws.Activate と書き 上記保存した文字を指定したセルにペースト
これは問題なくペーストできています。
ただ、なぜうまくペーストできるのか理解ができていません。
理由はではこれをシート毎に連続ではなく一枚だけペーストにした場合
最初の For Each Ws In Worksheets と Next Ws を削除すればいいか?と思いやってみたのですが、エラーしか出ません。
てっきりWSという関数に加工BOOKの場所データが格納されていてWs.Activateを書けば加工BOOKに戻ってきていると思ったのですが、エラーとなると違っていたのか?と理解ができなくなりました。
加工BOOKのBOOK名とかが書ければいいのでしょうが、BOOK名(ファイル名)は不特定でやりたい。他人に渡すので環境が読めない。
最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
グダグダな質問でわかりにくいと思いますが、二つのBOOKを行き来して片方はマクロを作動させた時にアクティブだったシートって条件にしたいのです。
まず、加工BOOK と マクロ保存BOOK の二種類を使用しています。
加工BOOKにある複数のシートを連続して加工するときにネット情報で下記書き方を拾いました。
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
〜色々な動作〜
Next Ws
この「色々な動作」の中で
ThisWorkbook.Activate ’マクロ保存BOOKをアクティブ(シート指定セル指定してコピーを取ってます)
その後、Ws.Activate と書き 上記保存した文字を指定したセルにペースト
これは問題なくペーストできています。
ただ、なぜうまくペーストできるのか理解ができていません。
理由はではこれをシート毎に連続ではなく一枚だけペーストにした場合
最初の For Each Ws In Worksheets と Next Ws を削除すればいいか?と思いやってみたのですが、エラーしか出ません。
てっきりWSという関数に加工BOOKの場所データが格納されていてWs.Activateを書けば加工BOOKに戻ってきていると思ったのですが、エラーとなると違っていたのか?と理解ができなくなりました。
加工BOOKのBOOK名とかが書ければいいのでしょうが、BOOK名(ファイル名)は不特定でやりたい。他人に渡すので環境が読めない。
最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
グダグダな質問でわかりにくいと思いますが、二つのBOOKを行き来して片方はマクロを作動させた時にアクティブだったシートって条件にしたいのです。
285デフォルトの名無しさん (ワッチョイ 67e5-/OcY)
2022/03/03(木) 14:00:06.45ID:rCo9Fm7Z0 AvtIVeやらしてる時点で作者も大した事なさそう
286デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:13:34.66ID:9O05M6/x0287デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 14:19:57.38ID:KJVc8U50M >>286
ありがとうございます。
この”ワークシート名”が分からなくても動かしたいのです。
つまり、hogehoge.xlsx だったり zukozuko.xlsxだったりするので
最初にアクティブだったファイル(シート)に戻ってくる汎用性がほしい。
ありがとうございます。
この”ワークシート名”が分からなくても動かしたいのです。
つまり、hogehoge.xlsx だったり zukozuko.xlsxだったりするので
最初にアクティブだったファイル(シート)に戻ってくる汎用性がほしい。
288デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:22:48.58ID:9O05M6/x0289デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:24:24.97ID:9O05M6/x0 そういやブックを指定する時はopenでいいけど、
シート名が不定な時、シートを指定する方法ってないのか
一旦開いてinputboxにインデックスかシート名入れるぐらいしかないのだろうか
シート名が不定な時、シートを指定する方法ってないのか
一旦開いてinputboxにインデックスかシート名入れるぐらいしかないのだろうか
290デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 14:32:22.98ID:jSBR5AQpd まずワークシートもワークブックもわかってない事から勉強したほうがよいのではないか
それとよくわからず何となく動いたものを他人に渡して大丈夫なのかと不安になるわ
それとよくわからず何となく動いたものを他人に渡して大丈夫なのかと不安になるわ
291デフォルトの名無しさん (ワッチョイ 5f68-g6h8)
2022/03/03(木) 14:43:43.44ID:9O05M6/x0 あんまり大丈夫じゃないけど、そこまで言うのもねぇ
292デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 15:56:08.71ID:KJVc8U50M 心配かけます
とりあえず、データは何回でもダウンロードできるのでいくら壊れても大丈夫です。
内輪の事務ですし
やはり、どんなファイル名(シート名)でもOKとなると難しいですかね
当然フルパスみたいに書くのが良いのはわかります。
とりあえず、データは何回でもダウンロードできるのでいくら壊れても大丈夫です。
内輪の事務ですし
やはり、どんなファイル名(シート名)でもOKとなると難しいですかね
当然フルパスみたいに書くのが良いのはわかります。
293デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 16:16:41.04ID:jSBR5AQpd 加工されるワークブックにはワークシートは複数なの?それとも1つなの?
仮に先頭にあるワークシートであれば
Set Ws = Worksheets(1)
のような指定をすればいいだけだぞ
ワークシート名が決まった名前であれば
Set Ws = Worksheets("○○")
のような指定でもOK
どのシートが加工していいのかを判断できるなら当初のFor文で回しながらシートを特定してもいいかと思うが
ある程度のルールが決まった質問じゃないと漠然としすぎて回答する側もとまどうと思うぞ
仮に先頭にあるワークシートであれば
Set Ws = Worksheets(1)
のような指定をすればいいだけだぞ
ワークシート名が決まった名前であれば
Set Ws = Worksheets("○○")
のような指定でもOK
どのシートが加工していいのかを判断できるなら当初のFor文で回しながらシートを特定してもいいかと思うが
ある程度のルールが決まった質問じゃないと漠然としすぎて回答する側もとまどうと思うぞ
294デフォルトの名無しさん (ワッチョイ ff2f-65e0)
2022/03/03(木) 17:11:57.48ID:AMDtBRAN0 >>284
>てっきりWSという関数に加工BOOKの場所データが格納されていて
Wsは関数じゃなくて変数
その変数に値をセットしていたのがFor文
>最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
Set Ws=ActiveSheet
かな。試してないけど
とりあえずForの代わりにこれで動くんじゃね
あまりにも基本がわかってない感があるなぁ
>てっきりWSという関数に加工BOOKの場所データが格納されていて
Wsは関数じゃなくて変数
その変数に値をセットしていたのがFor文
>最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。
Set Ws=ActiveSheet
かな。試してないけど
とりあえずForの代わりにこれで動くんじゃね
あまりにも基本がわかってない感があるなぁ
295デフォルトの名無しさん (スッップ Sdea-BsgF)
2022/03/03(木) 17:21:03.63ID:Vn+IwdQAd コピペしかしない人なんでしょ
296デフォルトの名無しさん (テテンテンテン MM86-65e0)
2022/03/03(木) 18:46:16.06ID:KJVc8U50M >>294
はいすいません
関数は書き間違いです。変数ですよねw
ちょっと、脳が
Set Ws=ActiveSheet
で辻褄があいました。
最初の For Nextで全シートした場合も1シートだけやった場合もエラーが出ずに自分の脳みそも合致がいきました。
これを書いていないのに Forで動かしたときに問題なかったので???状態になっておりました。
ありがとうございます。
はいすいません
関数は書き間違いです。変数ですよねw
ちょっと、脳が
Set Ws=ActiveSheet
で辻褄があいました。
最初の For Nextで全シートした場合も1シートだけやった場合もエラーが出ずに自分の脳みそも合致がいきました。
これを書いていないのに Forで動かしたときに問題なかったので???状態になっておりました。
ありがとうございます。
297デフォルトの名無しさん (スフッ Sdea-SZxA)
2022/03/03(木) 19:43:39.19ID:5R1CCyAZd 何ていうかVBAの言語より先にちゃんとした構文の日本語を学ぶ事をおすすめします
298デフォルトの名無しさん (ワッチョイ 9eda-q1UJ)
2022/03/03(木) 21:25:56.68ID:pVJYfbHP0 いやでも回答者さんの言うとおりだと思う。理屈や仕組み分からないまま使ったりしていたらいつかは大事故に繋がる。
過去にそういう事が身近であった。
過去にそういう事が身近であった。
299デフォルトの名無しさん (スップ Sdea-8W3/)
2022/03/03(木) 21:46:06.24ID:jSBR5AQpd 何がきっかけで作ることになったか知らないけど
どうして動いてるかもわからずに作って少ししておかしいことに気づいてもすぐ直せなかったら評価悪くなると思うんだよね
自分の周りの出来事でなければ知ったことではないんだけどその辺は踏まえて作った方がいいよ
どうして動いてるかもわからずに作って少ししておかしいことに気づいてもすぐ直せなかったら評価悪くなると思うんだよね
自分の周りの出来事でなければ知ったことではないんだけどその辺は踏まえて作った方がいいよ
300デフォルトの名無しさん (テテンテンテン MM86-JUvV)
2022/03/03(木) 22:33:01.31ID:yer8R1MmM ID:KJVc8U50M の言い回しが技術サイトでありがちな英語かロシア語の機械翻訳文に似てて草
301デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 11:35:29.63ID:lcqTf7BDd !!Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
Next i
End Sub
上記記述して実際にシートに数字を入力すると型が一致しませんとエラーになってしまいます
どうしていいのかわからずご教授していただければと
素人みたいな質問すいません
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
Next i
End Sub
上記記述して実際にシートに数字を入力すると型が一致しませんとエラーになってしまいます
どうしていいのかわからずご教授していただければと
素人みたいな質問すいません
302デフォルトの名無しさん (アウアウウー Sa0f-3vQF)
2022/03/05(土) 12:01:15.53ID:tG3yIb4ia 月の位置がおかしいから?w
303デフォルトの名無しさん (スップ Sdbf-Djfv)
2022/03/05(土) 12:21:43.22ID:RMBcHsBod こういうひとってデバッグの仕方とか知らないのかね?
Debug.Print(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
のようなことをすればどんな値が指定されているかわかるんだからみればいいのに
>素人みたいな質問すいません
素人でもこんな質問するかなという内容
Debug.Print(Cells(i,1)&" 年"&" 月"&Cells(i,2)&Cells(i,3)&"日")
のようなことをすればどんな値が指定されているかわかるんだからみればいいのに
>素人みたいな質問すいません
素人でもこんな質問するかなという内容
304デフォルトの名無しさん (ドコグロ MM7f-5gj/)
2022/03/05(土) 12:21:43.61ID:6K6JgexZM305デフォルトの名無しさん (ドコグロ MM7f-5gj/)
2022/03/05(土) 12:22:36.15ID:6K6JgexZM 被ったわ…
306デフォルトの名無しさん (ワッチョイ 0fb0-pp7o)
2022/03/05(土) 12:39:47.23ID:/JtJWIIA0 そもそもVBAにする必要あるのかこれ?
307デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 12:51:19.12ID:lcqTf7BDd >>301
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"& Cells(i,2)&"月"&Cells(i,3)&"日")
Next i
End Sub
すいません!
月の位置が違いました
上記の記述でも型が一致しませんとエラーになってしまいます
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
For i =1 to 5
cells(i,4)=DateValue(Cells(i,1)&" 年"& Cells(i,2)&"月"&Cells(i,3)&"日")
Next i
End Sub
すいません!
月の位置が違いました
上記の記述でも型が一致しませんとエラーになってしまいます
308デフォルトの名無しさん (ワッチョイ 9f02-6Pw1)
2022/03/05(土) 13:08:57.00ID:GCjMsc400 =Date(A2, B2, ... え?それ以上はやめとけって? はーい
309デフォルトの名無しさん (スップ Sdbf-Djfv)
2022/03/05(土) 13:15:31.27ID:RMBcHsBod その書き方だと少なくとも変更された際のイベントでDateValueを正しく動作させるには
1から5行目までの1から3列目までにそれぞれ年月日の値が保証されないと型が一致しないとでるけど
そういう状態が担保できてるの?
1行目の入力中でもその書き方だと2行目以降が空欄だと単なる「年月日」という値でDateValue実行してしまいますよ
1から5行目までの1から3列目までにそれぞれ年月日の値が保証されないと型が一致しないとでるけど
そういう状態が担保できてるの?
1行目の入力中でもその書き方だと2行目以降が空欄だと単なる「年月日」という値でDateValue実行してしまいますよ
310デフォルトの名無しさん (スフッ Sdbf-OYGG)
2022/03/05(土) 13:43:03.37ID:9H2YJJUDd セルの中身が実はシリアル値でしたに一票
311デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 14:24:04.55ID:lcqTf7BDd312デフォルトの名無しさん (スップ Sdbf-Djfv)
2022/03/05(土) 14:46:06.75ID:RMBcHsBod >>311
いずれかのセルが空欄や数字以外だったら4列目に空を設定
それ以外の場合のみDateValueとかでいいんじゃないの
ただ結果的に月日が不正な値(99月など)ならどうするとかそういうのも含めて自分で考えないとこの先やっていけないのでは
いずれかのセルが空欄や数字以外だったら4列目に空を設定
それ以外の場合のみDateValueとかでいいんじゃないの
ただ結果的に月日が不正な値(99月など)ならどうするとかそういうのも含めて自分で考えないとこの先やっていけないのでは
313デフォルトの名無しさん (スプッッ Sdbf-cdvC)
2022/03/05(土) 14:57:28.77ID:lcqTf7BDd314デフォルトの名無しさん (ワッチョイ 0f10-yG/L)
2022/03/08(火) 11:28:41.82ID:VCo1qiqP0 すみません、質問です!
例えばA1セルに関数が入っていたとします
A1セルが空白かどうか(関数は入っています)をVBAのIF文で分岐したいですがうまく行きません
VBAでは空白を取得できているはずなんですが何故なんでしょう…
どなたか対応方法を教えてください
例えばA1セルに関数が入っていたとします
A1セルが空白かどうか(関数は入っています)をVBAのIF文で分岐したいですがうまく行きません
VBAでは空白を取得できているはずなんですが何故なんでしょう…
どなたか対応方法を教えてください
315デフォルトの名無しさん (ブーイモ MM7f-2VcS)
2022/03/08(火) 11:33:03.86ID:e+QnjkryM If Range("A1").Fomula = "" Then
316デフォルトの名無しさん (ブーイモ MM7f-2VcS)
2022/03/08(火) 11:33:45.29ID:e+QnjkryM あ、嘘。ごめん。間違えた。忘れて。
317デフォルトの名無しさん (ワッチョイ 0f10-yG/L)
2022/03/08(火) 11:39:20.91ID:VCo1qiqP0318デフォルトの名無しさん (ワッチョイ 0f10-yG/L)
2022/03/08(火) 11:41:01.62ID:VCo1qiqP0 大丈夫です!
ありがとうございますm(_ _)m
ご存じの方いらっしゃいましたらよろしくお願いします
ありがとうございますm(_ _)m
ご存じの方いらっしゃいましたらよろしくお願いします
319デフォルトの名無しさん (ワッチョイ 9f01-sVLR)
2022/03/08(火) 12:20:48.22ID:vjLwCjzB0 普通にセルのValueなりTextなりを見ればいいんじゃないの?
320デフォルトの名無しさん (ワッチョイ 3b68-6iqn)
2022/03/08(火) 12:37:16.79ID:YxxaCHXb0321デフォルトの名無しさん (アウアウウー Sa0f-3vQF)
2022/03/08(火) 13:18:52.50ID:+eE97yRCa 空なのか空白なのか
322デフォルトの名無しさん (スフッ Sdbf-6iqn)
2022/03/08(火) 13:28:01.68ID:ez1E04nZd323デフォルトの名無しさん (ワッチョイ 9f01-sVLR)
2022/03/08(火) 14:12:30.12ID:vjLwCjzB0 Empty と空文字列と空白は違うって話かと
324デフォルトの名無しさん (ワッチョイ fb5f-8vjq)
2022/03/08(火) 19:12:34.37ID:IBMOg+Z/0 前任者のシートで0を書式で空白にしてるのには参ったね
textプロパティを覚えるきっかけにはなったけど
textプロパティを覚えるきっかけにはなったけど
325デフォルトの名無しさん (ワッチョイ 3be6-XzgJ)
2022/03/08(火) 19:25:23.65ID:fxoU/Jgx0 文字列枠だけど 書式は #
よくやるw
よくやるw
326デフォルトの名無しさん (ワッチョイ 9f4f-7JAY)
2022/03/11(金) 06:05:40.07ID:a7Y3SJRd0 すみません、質問させてください。
VBAで自作したクラスのメソッドやプロパティの一覧を列挙するにはどうすれば宜しいでしょうか?
どのような自作したクラスでも使える汎用的なものを作成したいです。
VBAで自作したクラスのメソッドやプロパティの一覧を列挙するにはどうすれば宜しいでしょうか?
どのような自作したクラスでも使える汎用的なものを作成したいです。
327デフォルトの名無しさん (アウアウウー Sa0f-Ua9o)
2022/03/11(金) 07:32:33.79ID:mh6S44cma すみません。
特定のセル内に有るリンクを抽出する方法は有りますか?
特定のセル内に有るリンクを抽出する方法は有りますか?
328デフォルトの名無しさん (スフッ Sdbf-6iqn)
2022/03/11(金) 08:32:32.67ID:vHBnGMWOd329デフォルトの名無しさん (スフッ Sdbf-6iqn)
2022/03/11(金) 08:33:31.79ID:vHBnGMWOd >>327
Hyperlink
Hyperlink
330デフォルトの名無しさん (ワッチョイ 824f-QC5K)
2022/03/12(土) 01:24:13.27ID:7NvJtuE10 >>328
なるほど、VBAでは無理なんですね。
以前、VB.Netの命令をVBAで走らせることが出来る場合があることをこのスレで聞いたことがあるような気がしましたので、
そちらとAPIで実装出来ないかを模索してみます。ありがとうございました。
なるほど、VBAでは無理なんですね。
以前、VB.Netの命令をVBAで走らせることが出来る場合があることをこのスレで聞いたことがあるような気がしましたので、
そちらとAPIで実装出来ないかを模索してみます。ありがとうございました。
331デフォルトの名無しさん (ワッチョイ ed2f-VrXP)
2022/03/12(土) 03:38:02.55ID:pgjQzAZm0 オブジェクトブラウザがやってるけど、どうやってるんだろうな
>>328
エクスポートとかしなくても、VBEオブジェクト使えばコードのスキャンはできる
プロシジャ名の列挙だけでよければここの実行結果3がそうじゃね
https://excelwork.info/excel/codemoduleproperty/
>>328
エクスポートとかしなくても、VBEオブジェクト使えばコードのスキャンはできる
プロシジャ名の列挙だけでよければここの実行結果3がそうじゃね
https://excelwork.info/excel/codemoduleproperty/
332デフォルトの名無しさん (ワッチョイ 824f-QC5K)
2022/03/12(土) 08:17:43.49ID:7NvJtuE10 >>331
後出しになってしまい申し訳ありません。
実は、実際にやりたかったことは
自作したEntityクラスのプロパティを
片っ端からGetして配列に入れ込み、
それをシートに展開すると言うことでした。
名前の列挙さえ取得できれば
後はリフレクションで呼び出せば可能と
考えていました。
おかげで実装の目処がつきました。
ありがとうございます。
後出しになってしまい申し訳ありません。
実は、実際にやりたかったことは
自作したEntityクラスのプロパティを
片っ端からGetして配列に入れ込み、
それをシートに展開すると言うことでした。
名前の列挙さえ取得できれば
後はリフレクションで呼び出せば可能と
考えていました。
おかげで実装の目処がつきました。
ありがとうございます。
333デフォルトの名無しさん (ワッチョイ 01da-2kLS)
2022/03/13(日) 02:21:31.96ID:YEneWsYd0 どういう状況で使うんだろう
自分で作ったのに数が多すぎて覚えてないとか?
自分で作ったのに数が多すぎて覚えてないとか?
334デフォルトの名無しさん (ワッチョイ a97c-0GCz)
2022/03/13(日) 02:43:05.91ID:B1jPEMw70 素人ですが質問させて下さい。
画像のような、1つのシートに20行単位の表で、連番と日付を上の表から取得するようなブックを作成しています。
表の順番を変えても、常に1つ上の表の番号+1、同じ日付としたいため、直接セルを参照せずこのような関数を使用しています。
式は、↓としています。
=INDIRECT(ADDRESS(ROW()-20,COLUMN()))
起動中は問題なく動作するのですが、ブックを閉じて再起動すると、起動時に必ず落ちてしまいます。(手動計算にすると開ける)
コピーを作成して、上記の式の部分だけ消すと問題なく起動します。
この場合、何が悪いのでしょうか。或いは代替手段があれば教えて頂けると助かります。
https://i.imgur.com/cVZnwnZ.jpg
画像のような、1つのシートに20行単位の表で、連番と日付を上の表から取得するようなブックを作成しています。
表の順番を変えても、常に1つ上の表の番号+1、同じ日付としたいため、直接セルを参照せずこのような関数を使用しています。
式は、↓としています。
=INDIRECT(ADDRESS(ROW()-20,COLUMN()))
起動中は問題なく動作するのですが、ブックを閉じて再起動すると、起動時に必ず落ちてしまいます。(手動計算にすると開ける)
コピーを作成して、上記の式の部分だけ消すと問題なく起動します。
この場合、何が悪いのでしょうか。或いは代替手段があれば教えて頂けると助かります。
https://i.imgur.com/cVZnwnZ.jpg
335デフォルトの名無しさん (ワッチョイ a97c-0GCz)
2022/03/13(日) 02:49:45.62ID:B1jPEMw70 普段VBAを触っているためVBAスレで質問してしまいました。
スレ違いであればスルーして下さい。
スレ違いであればスルーして下さい。
336デフォルトの名無しさん (ワッチョイ 02da-GArk)
2022/03/13(日) 03:12:17.58ID:JfJkUCau0 >>335
多分Excel板なら親切な人が回答してくれすよ
多分Excel板なら親切な人が回答してくれすよ
337デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/13(日) 05:18:44.42ID:JG4Baegn0338デフォルトの名無しさん (ワッチョイ a97c-0GCz)
2022/03/13(日) 11:02:15.36ID:B1jPEMw70 レスありがとうございます。
こいつ自体難のあるものなんですね。
offsetで狙った動きができました。ありがとうございます。
こいつ自体難のあるものなんですね。
offsetで狙った動きができました。ありがとうございます。
339デフォルトの名無しさん (スップ Sda2-WCXV)
2022/03/13(日) 14:32:38.85ID:UXs3pJFgd 普通に「=R[-20]C+1」じゃダメなのかね(R1C1形式
340デフォルトの名無しさん (ベーイモ MM96-0GCz)
2022/03/14(月) 05:49:07.49ID:3S2IFgLOM >>339
これだと移動させたとき式の値も変動してしまいました。
これだと移動させたとき式の値も変動してしまいました。
341デフォルトの名無しさん (スップ Sda2-WCXV)
2022/03/14(月) 07:57:10.59ID:727wXMaZd >>340
失礼、移動後も保証しないとだめだからこれではだめですね
失礼、移動後も保証しないとだめだからこれではだめですね
342デフォルトの名無しさん (ベーイモ MM96-0GCz)
2022/03/14(月) 17:48:06.77ID:yx1wpkrnM >>334ですが、当初安定していたもののまた同じ現象になりました。
端末を変えるなり新しいブックにして作り直したり色々試すも改善せず、T列の参照だけがこの現象を引き起こしている(参照先が文字列だと発生しないが数値は発生)ことが分かったため他の列を経由して参照する形で概ね落ち着きました。
エクセル自体のバグなのか分かりませんが同種の状況の方の参考まで。
端末を変えるなり新しいブックにして作り直したり色々試すも改善せず、T列の参照だけがこの現象を引き起こしている(参照先が文字列だと発生しないが数値は発生)ことが分かったため他の列を経由して参照する形で概ね落ち着きました。
エクセル自体のバグなのか分かりませんが同種の状況の方の参考まで。
343デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/15(火) 13:19:58.65ID:cMhtDWKy0344デフォルトの名無しさん (ワッチョイ 2eda-9pEf)
2022/03/16(水) 04:32:35.42ID:3pfuXf5y0 ブックがブックわれている
345デフォルトの名無しさん (スフッ Sda2-eKgF)
2022/03/16(水) 07:48:40.55ID:/fL7/vIcd セル「 ちくしょーちくしょー! 完全体に…… 完全体にさえなればー! 」
346デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/16(水) 07:55:37.71ID:tVfnjSl40 エクセル「私の行数は 1048576です」
347デフォルトの名無しさん (ワッチョイ 824f-QC5K)
2022/03/16(水) 10:32:53.21ID:EfOqqAli0 質問させて下さい。
EXCELの自ブックのシートにVBAにてADO接続でSQLを投げてRecordSetに値を取得していますが、
あまりに遅いのでINDEXを対象のシートに設定したいのですが、可能でしょうか?
可能であれば実装方法を教えて頂けるとありがたいです。
CREATE INDEXのSQLを投げると
「この操作は、このタイプのオブジェクトには実行できません。」というエラーが返って来ます。
EXCEL VBA上でのADO接続だったのでこちらのスレで質問させて頂きました。
もしスレ違いで有れば誘導して頂けるとありがたいです。
EXCELの自ブックのシートにVBAにてADO接続でSQLを投げてRecordSetに値を取得していますが、
あまりに遅いのでINDEXを対象のシートに設定したいのですが、可能でしょうか?
可能であれば実装方法を教えて頂けるとありがたいです。
CREATE INDEXのSQLを投げると
「この操作は、このタイプのオブジェクトには実行できません。」というエラーが返って来ます。
EXCEL VBA上でのADO接続だったのでこちらのスレで質問させて頂きました。
もしスレ違いで有れば誘導して頂けるとありがたいです。
348デフォルトの名無しさん (ワッチョイ 012d-42Eo)
2022/03/16(水) 20:05:55.54ID:E9jeVJ9d0 エクセルの開発、挿入、フォームコントロールでリストボックスを作って操作するのですが
sheet.ListBoxes("List").AddItem "A" だったかな?で追加できるんですが
sheet.ListBoxes("List").Clear で全て消去したくてもエラーになります。
sheet.ListBoxes("List").RemoveItem 1 で消せるので .ListCountが0になるまで
消していくとやりたいことはできるのですがClearのような1行で消す方法が知りたいです。
あと選択している内容を取得したいのですが.Valueだと内容ではなくインデックス番号?が返ってきます
選択している内容を文字列で取得できないのでしょうか。検索してもユーザーフォームのページばかり
出てきてわかりません。どなたか知っていたら教えてください。
sheet.ListBoxes("List").AddItem "A" だったかな?で追加できるんですが
sheet.ListBoxes("List").Clear で全て消去したくてもエラーになります。
sheet.ListBoxes("List").RemoveItem 1 で消せるので .ListCountが0になるまで
消していくとやりたいことはできるのですがClearのような1行で消す方法が知りたいです。
あと選択している内容を取得したいのですが.Valueだと内容ではなくインデックス番号?が返ってきます
選択している内容を文字列で取得できないのでしょうか。検索してもユーザーフォームのページばかり
出てきてわかりません。どなたか知っていたら教えてください。
349デフォルトの名無しさん (ワッチョイ e5ce-9pEf)
2022/03/17(木) 04:53:04.06ID:2UkhCjLQ0350デフォルトの名無しさん (ワッチョイ 4de6-AsxV)
2022/03/17(木) 05:57:03.26ID:RdQIwXxN0 最近のExcelってヘルプもついていないの?
351デフォルトの名無しさん (ワッチョイ 8d68-9pEf)
2022/03/17(木) 06:07:57.47ID:UlLj9IGM0 ネットがあるからねぇ
352デフォルトの名無しさん (ワッチョイ 2eda-9pEf)
2022/03/17(木) 11:46:40.93ID:mL7eqXCg0 それでなくなったのか、知らんかった
353デフォルトの名無しさん (ワッチョイ a101-hMcI)
2022/03/17(木) 12:31:38.84ID:9VjLQzax0 F1押すだけでヘルプ出てくるの便利だったのにね
354デフォルトの名無しさん (ワッチョイ 6963-kZ2d)
2022/03/17(木) 12:35:28.43ID:++LfIShu0 F1ヘルプ起動大嫌い
起動遅いから誤爆した時ストレス
起動遅いから誤爆した時ストレス
355デフォルトの名無しさん (ワッチョイ 8549-hyR6)
2022/03/17(木) 12:48:39.33ID:Rh0i5fdo0 まあ市販ソフトとかゲームとかおしゃんな小物とかもネット参照多くなったしね
356デフォルトの名無しさん (ワッチョイ e5ce-9pEf)
2022/03/17(木) 15:59:04.45ID:2UkhCjLQ0 2010のあたりでヘルプがオンラインになって、旧バージョンのヘルプファイルを無理矢理インストールして使ってた記憶がある
あれってどのバージョンの話だっけ
あれってどのバージョンの話だっけ
357デフォルトの名無しさん (ワッチョイ e5ce-9pEf)
2022/03/17(木) 16:00:36.21ID:2UkhCjLQ0358デフォルトの名無しさん (ブーイモ MMa5-qlT7)
2022/03/17(木) 18:51:23.33ID:NNC6CjWiM やたら重かった無能なイルカよりはマシだろう
359デフォルトの名無しさん (ワッチョイ 0242-qEgK)
2022/03/17(木) 19:51:28.31ID:hQEb7r5k0 お前を消す方法なつい
360デフォルトの名無しさん (ワッチョイ 82da-WCXV)
2022/03/17(木) 20:00:50.39ID:+xJma3Ej0361デフォルトの名無しさん (ワッチョイ 012d-42Eo)
2022/03/17(木) 22:15:36.31ID:UYkpbTrn0362デフォルトの名無しさん (ワッチョイ 82da-oXSz)
2022/03/18(金) 09:26:17.20ID:yuFF0zGe0363デフォルトの名無しさん (スッップ Sda2-WCXV)
2022/03/18(金) 10:46:32.32ID:GvFVeYD4d364デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/18(金) 19:57:18.31ID:hw4UnylL0 シート上で任意に選択した範囲を set myRange = 選択範囲 のように代入した後、
For Each buf In myRange.Value
処理A
Next
という処理をしようとすると、
・選択範囲が複数ある場合:正常に動作する
・選択範囲が1つの場合:「型が一致しません」のエラーになる
「For each ○ IN ●」の●には複数セルが指定されていないといけないということでしょうか?
For Each buf In myRange.Value
処理A
Next
という処理をしようとすると、
・選択範囲が複数ある場合:正常に動作する
・選択範囲が1つの場合:「型が一致しません」のエラーになる
「For each ○ IN ●」の●には複数セルが指定されていないといけないということでしょうか?
365デフォルトの名無しさん (ワッチョイ 068c-9CcT)
2022/03/18(金) 23:38:51.84ID:q1DQLrxB0366デフォルトの名無しさん (ワッチョイ 068c-9CcT)
2022/03/18(金) 23:53:01.28ID:q1DQLrxB0 おっと間違えた
dim buf as range
For Each buf In myRange
debug.print buf.value
Next
dim buf as range
For Each buf In myRange
debug.print buf.value
Next
367デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/19(土) 00:50:36.99ID:OOddD3UI0 myRange.Value の Value がおかしかったのか。
ありがとうございます。
ありがとうございます。
368デフォルトの名無しさん (ワッチョイ 81da-yD8a)
2022/03/19(土) 02:03:56.48ID:yYNieGSo0 >>364
myRangeの何をbufとしてとりたいの?各セル、連続した複数のセル、myRange全体によつて正しいこーどは異なる
myRangeの何をbufとしてとりたいの?各セル、連続した複数のセル、myRange全体によつて正しいこーどは異なる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 官僚「台湾有事についての質問か、『政府として逐一答えない』と…(カタカタカタ)」高市「私1人で答弁できるわよ!」 [972432215]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
