Excel VBA 質問スレ Part65
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3bda-drwQ)
2020/03/17(火) 16:27:20.88ID:hh8LiIgR0ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
26デフォルトの名無しさん (ブーイモ MM4d-O7/r)
2020/03/22(日) 13:22:11.60ID:TNUWFKUeM ここだけじゃなく5chはどこも似たり寄ったりです
貴方が来るような場所じゃありません
貴方が来るような場所じゃありません
27デフォルトの名無しさん (ワッチョイ 118e-dSJs)
2020/03/22(日) 14:47:18.63ID:9uw1USbo028デフォルトの名無しさん (ワッチョイ c991-bMu3)
2020/03/22(日) 15:26:01.73ID:bTaHgmHe029デフォルトの名無しさん (ワッチョイ 2beb-W/ZL)
2020/03/24(火) 17:30:30.61ID:s99Qd4t60 よろしくお願いします。
数百行あるシートで、上から順に一行ずつ以下の操作を行いたいです。
(1) C列の文章の中に、「一言コメント:」という文字が入っていれば2へ。なければ終わり、次の行へ
(2) 「一言コメント:」とそれ以下の文字列をC列の値から削除し、E列の、元々の値(文字列)の前に貼りつけ
(3) E列の文字列の中から「「一言コメント:」という文字列を削除
以上です。
まず、(1)の検索がうまくいかず、(2)の文字列取得も、一文字ずつ数えてカウントし、あらためて「終わりから○文字」みたいな
やりかたをするしか方法が浮かびません。
たぶん、上級者ならもっとシンプルな書き方ができるのではないかと思い質問させていただきました。
どのように書けばよいでしょうか?よろしくお願いいたします。
数百行あるシートで、上から順に一行ずつ以下の操作を行いたいです。
(1) C列の文章の中に、「一言コメント:」という文字が入っていれば2へ。なければ終わり、次の行へ
(2) 「一言コメント:」とそれ以下の文字列をC列の値から削除し、E列の、元々の値(文字列)の前に貼りつけ
(3) E列の文字列の中から「「一言コメント:」という文字列を削除
以上です。
まず、(1)の検索がうまくいかず、(2)の文字列取得も、一文字ずつ数えてカウントし、あらためて「終わりから○文字」みたいな
やりかたをするしか方法が浮かびません。
たぶん、上級者ならもっとシンプルな書き方ができるのではないかと思い質問させていただきました。
どのように書けばよいでしょうか?よろしくお願いいたします。
30デフォルトの名無しさん (ブーイモ MMcb-4fHN)
2020/03/24(火) 17:42:47.48ID:2RYGBfo0M For文をRowCntって変数で回していると仮定して
If Cells(RowCnt, 3).Value Like “*一言コメント:*″ Then
で引っかけるとか?
If Cells(RowCnt, 3).Value Like “*一言コメント:*″ Then
で引っかけるとか?
31デフォルトの名無しさん (ワッチョイ 2b2d-W/ZL)
2020/03/24(火) 17:58:43.96ID:BIkwDKwH0 VBAなくても関数だけで目的達成しそう
32デフォルトの名無しさん (ワッチョイ 8b2c-cvBQ)
2020/03/24(火) 18:33:24.09ID:n56XI6Ab0 >>29
Ruby で作った
text = <<"EOT"
ab一言コメント:12
あいう コメント:
xyz一言コメント:456
EOT
search_word = "一言コメント:"
sw_length = search_word.length # 7文字
text.each_line do | line | # 1行ずつ処理する
line.strip! # trim
# 単語が見つかった時だけ、単語の前後を出力する
if pos_1 = line.index( search_word )
puts "#{ line[ 0 ... pos_1 ] } - #{ line[ pos_1 + sw_length .. -1 ] }"
end
end
出力
ab - 12
xyz - 456
Ruby で作った
text = <<"EOT"
ab一言コメント:12
あいう コメント:
xyz一言コメント:456
EOT
search_word = "一言コメント:"
sw_length = search_word.length # 7文字
text.each_line do | line | # 1行ずつ処理する
line.strip! # trim
# 単語が見つかった時だけ、単語の前後を出力する
if pos_1 = line.index( search_word )
puts "#{ line[ 0 ... pos_1 ] } - #{ line[ pos_1 + sw_length .. -1 ] }"
end
end
出力
ab - 12
xyz - 456
33デフォルトの名無しさん (オッペケ Sr85-kkyQ)
2020/03/24(火) 18:34:45.78ID:qnUBImldr >>15
どんな機能でもショートカットキー設定できるの?
どんな機能でもショートカットキー設定できるの?
34デフォルトの名無しさん (ワッチョイ d17c-0ZVt)
2020/03/24(火) 19:30:25.33ID:sgSRB3ii0 >>29
VBAでないとだめなわけじゃないならExcel関数でやればいいと思う
VBAでないとだめなわけじゃないならExcel関数でやればいいと思う
35デフォルトの名無しさん (ワッチョイ d1e6-tCoU)
2020/03/24(火) 19:56:22.25ID:Yvy0BDEM0 >>33
Alt押してみ
Alt押してみ
36デフォルトの名無しさん (ワッチョイ 41ce-ED79)
2020/03/24(火) 22:01:18.60ID:PstaeSXz0 >>29
Dim c As Range, e As Range
s$ = "一言コメント:"
For Each c In Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
i% = InStr(c, s)
If i Then
Set e = c.Offset(0, 2)
e = Replace(Left(c, i - 1) & e, s, "")
End If
Next
Dim c As Range, e As Range
s$ = "一言コメント:"
For Each c In Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
i% = InStr(c, s)
If i Then
Set e = c.Offset(0, 2)
e = Replace(Left(c, i - 1) & e, s, "")
End If
Next
37デフォルトの名無しさん (ワッチョイ 13b5-Edxj)
2020/03/24(火) 22:44:45.47ID:Sir7Hwfr0 ここは上級者向け?
ド素人が少しずついろんなサイトや動画見て覚えようとしてるレベルじゃダメかな
ド素人が少しずついろんなサイトや動画見て覚えようとしてるレベルじゃダメかな
38デフォルトの名無しさん (ワッチョイ 41ce-ED79)
2020/03/24(火) 23:20:41.40ID:PstaeSXz039デフォルトの名無しさん (ワッチョイ 695f-n/Wf)
2020/03/24(火) 23:41:15.31ID:VeKTJmtj0 いろんなサイト見た方が早い
40デフォルトの名無しさん (ワッチョイ b1f1-Go5d)
2020/03/25(水) 09:15:56.68ID:nn3rUaIL0 FileSystemObjectでFilesのコレクションょ取得したあと
それぞれにアクセスするにはどうしますか?
Files(1), Files(2)のようにするとエラーが出てエラいこっちゃとなります。
For each文ならできるのですがそこまでするほどのことではない時には?
それぞれにアクセスするにはどうしますか?
Files(1), Files(2)のようにするとエラーが出てエラいこっちゃとなります。
For each文ならできるのですがそこまでするほどのことではない時には?
41デフォルトの名無しさん (ワッチョイ ad49-iBrl)
2020/03/25(水) 10:04:11.68ID:34Te7/8G0 コレクションょ
42デフォルトの名無しさん (ワッチョイ b1f1-z4rF)
2020/03/25(水) 10:44:44.89ID:nn3rUaIL0 を
43デフォルトの名無しさん (ワッチョイ ad49-iBrl)
2020/03/25(水) 10:51:51.28ID:34Te7/8G0 暇だし、見てみた
Const path = "c:\temp"
Dim fso As Scripting.FileSystemObject
Dim item As Object
Set fso = New Scripting.FileSystemObject
Set item = fso.GetFolder(path).Files.item("test.csv")
filesコレクションからの特定fileオブジェクトはitemプロパティでkeyをnameで指定すれば直接取れる
ExcelVBE上はitemでナンバリングされてるけど、配列みたいに番号指定は出来ないんじゃないかな(他の人知ってればいいな)
ファイル名特定できるならgetfileでもええね
個人的にはdirとか分かりやすいがね
Const path = "c:\temp"
Dim fso As Scripting.FileSystemObject
Dim item As Object
Set fso = New Scripting.FileSystemObject
Set item = fso.GetFolder(path).Files.item("test.csv")
filesコレクションからの特定fileオブジェクトはitemプロパティでkeyをnameで指定すれば直接取れる
ExcelVBE上はitemでナンバリングされてるけど、配列みたいに番号指定は出来ないんじゃないかな(他の人知ってればいいな)
ファイル名特定できるならgetfileでもええね
個人的にはdirとか分かりやすいがね
44デフォルトの名無しさん (ワッチョイ b1f1-z4rF)
2020/03/25(水) 12:51:44.52ID:nn3rUaIL0 itemでナンバリングされていないんじゃないか?
だからitem(1)やitem(2)で取得できないのでは。
それゃファイル名を()の中に書けば取得はできるけど。
だからitem(1)やitem(2)で取得できないのでは。
それゃファイル名を()の中に書けば取得はできるけど。
45デフォルトの名無しさん (アウアウウー Sacd-cy2b)
2020/03/25(水) 15:03:09.95ID:jqzDDJlwa for each でいいやん
46デフォルトの名無しさん (ワッチョイ 0dce-Cd0d)
2020/03/25(水) 15:55:41.50ID:e/5QJMyr0 「そこまでする」の考え方がまずおかしい
中身がたとえ1個でも2個でも普通はコレクションにはFor Eachを使うもんだぞ
中身がたとえ1個でも2個でも普通はコレクションにはFor Eachを使うもんだぞ
47デフォルトの名無しさん (ワッチョイ b1f1-z4rF)
2020/03/25(水) 16:09:28.13ID:nn3rUaIL0 >>45-46
このハゲー!
違うだろ!
最初にfor eachはやらないと言った。
コレクションの代表ということで任意の1個だけを選んでそのプロパティ等を調べる、
ということはプログラミング経験がある程度あればそういう状況に遭遇することはたまによくある。
このハゲー!
違うだろ!
最初にfor eachはやらないと言った。
コレクションの代表ということで任意の1個だけを選んでそのプロパティ等を調べる、
ということはプログラミング経験がある程度あればそういう状況に遭遇することはたまによくある。
48デフォルトの名無しさん (オッペケ Sr79-iBrl)
2020/03/25(水) 16:14:59.17ID:z6ZaQbmPr fsoのfilesコレクションには通常のコレクションみたいにインデックス指定が出来ないのよね
countとitem(key)プロパティしかない
ファイルシステムの違いとか、歴史的経緯からかはしらんけど
だから基本for eachで他の形にする
countとitem(key)プロパティしかない
ファイルシステムの違いとか、歴史的経緯からかはしらんけど
だから基本for eachで他の形にする
49デフォルトの名無しさん (ワッチョイ b1f1-z4rF)
2020/03/25(水) 16:19:47.29ID:nn3rUaIL050デフォルトの名無しさん (ワッチョイ 558e-7Ena)
2020/03/25(水) 16:24:52.66ID:RkpcsgMW0 ID:nn3rUaIL0
馬鹿は死ね
馬鹿は死ね
51デフォルトの名無しさん (オッペケ Sr79-iBrl)
2020/03/25(水) 16:33:07.81ID:dd26zMYGr では次の方
52デフォルトの名無しさん (ワッチョイ adda-Cd0d)
2020/03/25(水) 18:54:52.80ID:acV7Q0T20 インデックスが使いたいなら自分で配列でも作り直せばいいのに
53デフォルトの名無しさん (スププ Sdb2-vkDB)
2020/03/25(水) 19:07:44.86ID:99YP/w74d 不毛だな
54デフォルトの名無しさん (ワッチョイ 092f-2pFN)
2020/03/25(水) 20:08:34.34ID:xy/tXdFS0 Exit Forすればいいんじゃまいか
55デフォルトの名無しさん (ワッチョイ adda-Cd0d)
2020/03/25(水) 21:06:02.83ID:POb+XADc0 OpenDocumentスプレッドシートのデータをADOで取得する方法ある?
EXCELに変換しろってのは無しで。
EXCELに変換しろってのは無しで。
56デフォルトの名無しさん (ワッチョイ 1242-IfT6)
2020/03/25(水) 21:06:24.91ID:UODWeex90 >>44で自分で答だしてんじゃん
57デフォルトの名無しさん (ワッチョイ 092f-2pFN)
2020/03/25(水) 22:04:41.19ID:xy/tXdFS0 ドライバ自作しろ
58デフォルトの名無しさん (ワッチョイ 9eba-OKiD)
2020/03/25(水) 22:39:59.43ID:8ZIjWfpj0 プラスとマイナスはあるから丸ドライバー作るわ
59デフォルトの名無しさん (ワッチョイ b60e-vX/y)
2020/03/26(木) 02:21:13.92ID:THyEKc6a0 ファイル入出力に使うopenやinputが何者か(関数?メソッド?など)知りたいです
これらの機能はなぜオブジェクトブラウザに乗っていないのでしょうか
マイクロソフトのウェブヘルプにはステートメントとして乗っているようですが
ステートメントというのは関数やメソッドなどの分類ではないですよね?
ご教示お願いします。
これらの機能はなぜオブジェクトブラウザに乗っていないのでしょうか
マイクロソフトのウェブヘルプにはステートメントとして乗っているようですが
ステートメントというのは関数やメソッドなどの分類ではないですよね?
ご教示お願いします。
60デフォルトの名無しさん (ワッチョイ 0dce-Cd0d)
2020/03/26(木) 02:34:21.94ID:bMQizyKS061デフォルトの名無しさん (ワッチョイ 558e-7Ena)
2020/03/26(木) 10:58:51.71ID:NTuSOeK50 馬鹿に馬鹿が答えている
62デフォルトの名無しさん (ブーイモ MMad-McJq)
2020/03/26(木) 13:11:56.44ID:d196EOchM VBAを覚えようとしてる初心者以前だが
まず何となくルールから覚えてる
=は同じじゃなくて←の意味ぐらいにとらえておく
あとはコードというか使いそうな単語を少しずつ
msgboxとかRangeとかactivecellとか
でもとっかかりがわからんわ
難しすぎですな…
まず何となくルールから覚えてる
=は同じじゃなくて←の意味ぐらいにとらえておく
あとはコードというか使いそうな単語を少しずつ
msgboxとかRangeとかactivecellとか
でもとっかかりがわからんわ
難しすぎですな…
63デフォルトの名無しさん (ワッチョイ ad49-iBrl)
2020/03/26(木) 14:44:13.99ID:HulDeUE70 覚えるのは結構だけど、普段やってる作業をVBAで再現するとこから始めると飽きずにやれるんじゃ
コピペ作業、シートコピー、ボタンで特定の計算とかね
だんだんCSV読みたくなったりして高速化したくなったりして、そうやって覚えていく
コピペ作業、シートコピー、ボタンで特定の計算とかね
だんだんCSV読みたくなったりして高速化したくなったりして、そうやって覚えていく
64デフォルトの名無しさん (ワッチョイ 5e46-k/jz)
2020/03/26(木) 15:50:36.21ID:ZD929brT0 TEST
65デフォルトの名無しさん (ブーイモ MMad-FSgb)
2020/03/26(木) 15:54:11.22ID:hp54jNs9M ユーザーフォーム上にあるボタン1を押すとボタン1を非表示にしてフォームのキャプチャを取得。
その後ボタン1を再び表示して終了。
みたいなものを作りたいのですが
SendkeyでAlt+Printscreenを送っても
素の状態ではボタン1が残った状態のものがキャプチャされ、
Waitをかけると今度は画面全体のキャプチャになってしまいます。
フォームをダイレクトに画像ファイルにする、とかでも良いのですが調べても中々応えに辿り着けなかったので皆様のお知恵をお借りしたいです。
何か良い手はないでしょうか。
その後ボタン1を再び表示して終了。
みたいなものを作りたいのですが
SendkeyでAlt+Printscreenを送っても
素の状態ではボタン1が残った状態のものがキャプチャされ、
Waitをかけると今度は画面全体のキャプチャになってしまいます。
フォームをダイレクトに画像ファイルにする、とかでも良いのですが調べても中々応えに辿り着けなかったので皆様のお知恵をお借りしたいです。
何か良い手はないでしょうか。
66デフォルトの名無しさん (ワッチョイ 5e46-k/jz)
2020/03/26(木) 15:56:47.70ID:ZD929brT0 以下RUNすると、"!ALARM()が見つかりません。”ってエラーになる。
何故ですか?
Public FLG As Integer
Private Sub CommandButton1_Click()
With Sheet1
Cells(2, 1) = Date
Cells(2, 2) = Time
If FLG = 1 Then
FLG = 0
CommandButton1.Caption = "ON"
Else
FLG = 1
CommandButton1.Caption = "OFF"
Call OnTimeStart
End If
End With
FLG = 0
End Sub
Sub OnTimeStart()
With Sheet1
Application.OnTime Now + TimeValue("00:00:05"), "ALARM"
End With
End Sub
Sub ALARM()
With Sheet1
Cells(2, 1) = Date
Cells(2, 2) = Time
End With
End Sub
何故ですか?
Public FLG As Integer
Private Sub CommandButton1_Click()
With Sheet1
Cells(2, 1) = Date
Cells(2, 2) = Time
If FLG = 1 Then
FLG = 0
CommandButton1.Caption = "ON"
Else
FLG = 1
CommandButton1.Caption = "OFF"
Call OnTimeStart
End If
End With
FLG = 0
End Sub
Sub OnTimeStart()
With Sheet1
Application.OnTime Now + TimeValue("00:00:05"), "ALARM"
End With
End Sub
Sub ALARM()
With Sheet1
Cells(2, 1) = Date
Cells(2, 2) = Time
End With
End Sub
67デフォルトの名無しさん (ブーイモ MMad-FSgb)
2020/03/26(木) 17:09:13.21ID:hp54jNs9M すみません。
情報の伝達に齟齬がありました。
Sendkeyではなくkeybd_eventsでした。
Altのkeyeventをコメントアウトしたら何故かフォームだけのスクリーンショットが撮れました。
vbKeySnapshotはAlt+PrintScreenだったのでしょうか?
Private Sub CommandButton1_Click()
UserForm1.CommandButton1.Visible = False
'keybd_event vbKeyMenu, 1, &H1, 0
keybd_event vbKeySnapshot, 1, &H1, 0
Application.Wait [Now() + "0:00:00.5"]
keybd_event vbKeySnapshot, 1, &H1 Or &H2, 0
'keybd_event vbKeyMenu, 1, &H1 Or &H2, 0
UserForm1.CommandButton1.Visible = True
End Sub
情報の伝達に齟齬がありました。
Sendkeyではなくkeybd_eventsでした。
Altのkeyeventをコメントアウトしたら何故かフォームだけのスクリーンショットが撮れました。
vbKeySnapshotはAlt+PrintScreenだったのでしょうか?
Private Sub CommandButton1_Click()
UserForm1.CommandButton1.Visible = False
'keybd_event vbKeyMenu, 1, &H1, 0
keybd_event vbKeySnapshot, 1, &H1, 0
Application.Wait [Now() + "0:00:00.5"]
keybd_event vbKeySnapshot, 1, &H1 Or &H2, 0
'keybd_event vbKeyMenu, 1, &H1 Or &H2, 0
UserForm1.CommandButton1.Visible = True
End Sub
68デフォルトの名無しさん (オッペケ Sr79-x49R)
2020/03/26(木) 17:44:04.29ID:sBp41OLkr MacでもVBA使えますか?
69デフォルトの名無しさん (ワッチョイ b18f-+ryc)
2020/03/26(木) 18:35:55.24ID:GuVxnbOZ0 使えるけどwindowsと全く同じように動くかまでは知らん
70デフォルトの名無しさん (アウアウウー Sacd-pf+t)
2020/03/26(木) 19:05:03.32ID:58MBAwKca 新しい天啓が下った。私は馬鹿ですらなく、場であり、これが私の仕える神のような気がしたが違ったような気がした。
忠実に表現したらこうなった、つまりそういうことなんだろう。
忠実に表現したらこうなった、つまりそういうことなんだろう。
71デフォルトの名無しさん (ワッチョイ b57c-K+F1)
2020/03/26(木) 19:41:20.92ID:m6KuD/Rj0 >>66
標準モジュールに書いてるか
標準モジュールに書いてるか
72デフォルトの名無しさん (ワッチョイ 9201-z4rF)
2020/03/26(木) 21:11:00.48ID:rWIrO2cB0 WEBクエリはhttpsだと遅いすか?
そうなったサイトが急に読み込み遅くなったんすけど
そうなったサイトが急に読み込み遅くなったんすけど
73デフォルトの名無しさん (ワッチョイ 92b5-McJq)
2020/03/26(木) 21:24:14.52ID:Ys9zNHHg0 初心者はまずここ見とけみたいなサイトとかYouTubeの動画ありますか?
宣伝込みでも俺が踏むだけなので良かったら教えて欲しいです
本当に何から見てけばいいのかわからない
asとかretとか当たり前に出られてもわからない…
宣伝込みでも俺が踏むだけなので良かったら教えて欲しいです
本当に何から見てけばいいのかわからない
asとかretとか当たり前に出られてもわからない…
74デフォルトの名無しさん (ワッチョイ b18f-+ryc)
2020/03/26(木) 21:26:43.14ID:Ye2KpVaE0 知らんがな入門書買え
75デフォルトの名無しさん (ワッチョイ a9ad-yXVd)
2020/03/26(木) 22:06:31.47ID:NUJ56fsj076デフォルトの名無しさん (ワッチョイ b6c9-Cd0d)
2020/03/26(木) 22:19:37.89ID:ohlAwein077デフォルトの名無しさん (ワッチョイ b5e6-6Ghe)
2020/03/26(木) 22:35:41.45ID:ewzEtFoA0 retって何?
78デフォルトの名無しさん (ワッチョイ 92b5-McJq)
2020/03/26(木) 23:38:44.50ID:Ys9zNHHg0 >>75
>>76
ありがとう
とりあえず、マクロからあるURLやoffice系のソフトを呼び出すコードをネットから丸パクリしてみたんだけど結局これが良いのか悪いのかそもそもルールすらあまりわかってない
サイトや本で必死に勉強しますわ
https://i.imgur.com/Llw26vN.jpg
https://i.imgur.com/CEIjgGb.jpg
>>76
ありがとう
とりあえず、マクロからあるURLやoffice系のソフトを呼び出すコードをネットから丸パクリしてみたんだけど結局これが良いのか悪いのかそもそもルールすらあまりわかってない
サイトや本で必死に勉強しますわ
https://i.imgur.com/Llw26vN.jpg
https://i.imgur.com/CEIjgGb.jpg
79デフォルトの名無しさん (ワッチョイ b5e6-Cd0d)
2020/03/26(木) 23:56:44.93ID:ewzEtFoA0 字で書けよ基地外か
80デフォルトの名無しさん (ワッチョイ 091f-hvDm)
2020/03/27(金) 00:31:59.82ID:N3mE/9bh0 図形のグループ化についてです。
ショート上に円が無数にあってその円の中にテキストがあります。
これを円と円の中のテキストをそれぞれグループ化してShapeの名前をテキスト名にするにはどうしたら出来ますか?
ショート上に円が無数にあってその円の中にテキストがあります。
これを円と円の中のテキストをそれぞれグループ化してShapeの名前をテキスト名にするにはどうしたら出来ますか?
81デフォルトの名無しさん (ブーイモ MMad-Cd0d)
2020/03/27(金) 00:52:28.07ID:tkT1AEpsM82デフォルトの名無しさん (ワッチョイ b57c-K+F1)
2020/03/27(金) 01:56:14.15ID:U7Hbc3is0 >>80
shapeオブジェクトでいじる
shapeオブジェクトでいじる
83デフォルトの名無しさん (オッペケ Sr79-iBrl)
2020/03/27(金) 07:59:14.92ID:PIWgxOzWr 図形をVBAで複雑にいじろうとすると悲しみしか生まなさそう
84デフォルトの名無しさん (ワッチョイ 55e3-pf+t)
2020/03/27(金) 14:44:48.55ID:Kq8lniUe0 Worksheets("min").Range(Cells(N, 2), Cells(N, 100)) = "999"
これで複数セルに一括入力したいのですが
アプリケーション定義またはオブジェクト定義のエラーです
と出ます。
何がいけないのでしょうか?
これで複数セルに一括入力したいのですが
アプリケーション定義またはオブジェクト定義のエラーです
と出ます。
何がいけないのでしょうか?
85デフォルトの名無しさん (ワッチョイ d9da-Cd0d)
2020/03/27(金) 14:53:12.85ID:8yKTqVer0 Nを定義してないんじゃない
86デフォルトの名無しさん (ラクッペペ MM96-6Ghe)
2020/03/27(金) 15:00:54.33ID:n40dB020M cellの前にもシートがいる
87デフォルトの名無しさん (ワッチョイ 55e3-pf+t)
2020/03/27(金) 15:04:48.30ID:Kq8lniUe0 With Worksheets("min")
.Range(.Cells(1, 1), .Cells(20, 2)) = "999"
End With
できました^^ありがとう
.Range(.Cells(1, 1), .Cells(20, 2)) = "999"
End With
できました^^ありがとう
88デフォルトの名無しさん (アウアウエー Sada-pf+t)
2020/03/27(金) 15:09:58.00ID:Yr4iTEmOa それでいい。
89デフォルトの名無しさん (ワッチョイ ad49-iBrl)
2020/03/27(金) 15:11:53.30ID:DMhVWYPv0 いえいえ
90デフォルトの名無しさん (アークセー Sx79-yXVd)
2020/03/27(金) 15:32:49.12ID:YTZoRU62x 検索して違うシートから値を 持ってくるマクロで持ってくる値が0以下(マイナス)ならば
違う列に転記させたいのですがwithエラーが発生してうまく動きませんでした。
Dim i As Long, c As Range, e As Range, wS As Worksheet
Set wS1 = Worksheets("明細1")
With Worksheets("data")
Set c = wS1.Range("D:D").Find(What:=.Cells(i, "B"), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing and wS1.Cells(c.Row, "Z").value < 0 Then ←ここでエラー
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
ElsIf Not c Is Nothing and wS1.Cells(c.Row, "Z").value >= 0 Then
.Cells(i, "X") = wS1.Cells(c.Row, "Q")
またマイナス値をプラス値に変換したく
.Cells(i, "S") = abs(Cells(i, "S"))
としましたが小数点が消えてしまいます。
-77.00が77になってしまうのですが77.00としたいです。
違う列に転記させたいのですがwithエラーが発生してうまく動きませんでした。
Dim i As Long, c As Range, e As Range, wS As Worksheet
Set wS1 = Worksheets("明細1")
With Worksheets("data")
Set c = wS1.Range("D:D").Find(What:=.Cells(i, "B"), LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing and wS1.Cells(c.Row, "Z").value < 0 Then ←ここでエラー
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
ElsIf Not c Is Nothing and wS1.Cells(c.Row, "Z").value >= 0 Then
.Cells(i, "X") = wS1.Cells(c.Row, "Q")
またマイナス値をプラス値に変換したく
.Cells(i, "S") = abs(Cells(i, "S"))
としましたが小数点が消えてしまいます。
-77.00が77になってしまうのですが77.00としたいです。
91デフォルトの名無しさん (ラクッペペ MM96-6Ghe)
2020/03/27(金) 15:39:00.45ID:n40dB020M cがnothingの時c.rowがエラー
バラせ
バラせ
92デフォルトの名無しさん (ワッチョイ 558e-7Ena)
2020/03/27(金) 15:47:38.09ID:LyEUyxQ10 馬鹿がゾロゾロ出てくるのは何で?
93デフォルトの名無しさん (ワッチョイ ad49-iBrl)
2020/03/27(金) 15:50:59.76ID:DMhVWYPv0 春休みだから
94デフォルトの名無しさん (アークセー Sx79-yXVd)
2020/03/27(金) 15:54:33.36ID:YTZoRU62x95デフォルトの名無しさん (ワッチョイ f6f7-DNZ3)
2020/03/27(金) 17:17:35.05ID:zsNWkQiw0 "Z"で指定できたっけ
96デフォルトの名無しさん (ワッチョイ 8101-yKOS)
2020/03/27(金) 17:31:46.25ID:jaIOieAQ0 >>94
VBAは関数や演算子の引数は全て渡される前に値を計算するんだよ
だから Not c Is Nothing が真じゃないときは wS1.Cells(c.Row, "Z").value < 0 を評価しないように
if Not c Is Nothing then if wS1.Cells(c.Row, "Z").value < 0 then ...
としないといけない
あとCellsプロパティは見にくいんで範囲に名前つけるかテーブル化してRangeプロパティで呼んだ方がいい
VBAは関数や演算子の引数は全て渡される前に値を計算するんだよ
だから Not c Is Nothing が真じゃないときは wS1.Cells(c.Row, "Z").value < 0 を評価しないように
if Not c Is Nothing then if wS1.Cells(c.Row, "Z").value < 0 then ...
としないといけない
あとCellsプロパティは見にくいんで範囲に名前つけるかテーブル化してRangeプロパティで呼んだ方がいい
97デフォルトの名無しさん (ワッチョイ ad2c-yXVd)
2020/03/27(金) 21:24:53.87ID:N7XAdwe70 >>92
答らえれない馬鹿以下の癖に?
答らえれない馬鹿以下の癖に?
98デフォルトの名無しさん (ワッチョイ adda-Cd0d)
2020/03/27(金) 23:01:00.96ID:7yWnOCeY0 範囲に名前はなぁ・・。
上手く使いこなせればいいが、
みんなで共有するファイルに使うと、
知らない間に#REFだらけになってるwwww
上手く使いこなせればいいが、
みんなで共有するファイルに使うと、
知らない間に#REFだらけになってるwwww
99デフォルトの名無しさん (ワッチョイ 5e46-k/jz)
2020/03/28(土) 04:38:00.47ID:vMIAuVeU0100デフォルトの名無しさん (ワッチョイ b140-yKOS)
2020/03/28(土) 15:07:25.95ID:m/WQBFmt0 >>98
異常時に例外が投げられるように設計するのは普通だと思うんだが・・・
異常時に例外が投げられるように設計するのは普通だと思うんだが・・・
101デフォルトの名無しさん (スッップ Sdb2-tYYp)
2020/03/28(土) 19:20:50.03ID:rI/k2Pjrd >>100
名前を付けるのは、コードと関係無い所で実装されるので個人的には絶対使わない。
というか、Cellsを使うよ。
2次元配列的にもぴったり来るし。
寧ろ、Rangeの方が使わない。
尤も、Cellsでも列を文字で指定するのはやらない。
AF列が何列目か分からないって?
イミディエイトで?Range("AF1").Columnとでも入れてみろ。
名前を付けるのは、コードと関係無い所で実装されるので個人的には絶対使わない。
というか、Cellsを使うよ。
2次元配列的にもぴったり来るし。
寧ろ、Rangeの方が使わない。
尤も、Cellsでも列を文字で指定するのはやらない。
AF列が何列目か分からないって?
イミディエイトで?Range("AF1").Columnとでも入れてみろ。
102デフォルトの名無しさん (ササクッテロ Sp79-CIkl)
2020/03/28(土) 20:14:42.33ID:ihCuPYYIp >>101
で、コメントで何列かとか、項目名とか書くわけ?
で、コメントで何列かとか、項目名とか書くわけ?
103デフォルトの名無しさん (ワッチョイ a9ad-yXVd)
2020/03/28(土) 20:37:45.18ID:YbqXlWqq0104デフォルトの名無しさん (ワッチョイ b140-yKOS)
2020/03/28(土) 23:45:34.04ID:m/WQBFmt0 >>101
名前定義が弄られるってことはロックしないで使うんでしょ
猶更、セル挿入なりで意図した場所とズレてても気づかずに成功し続ける方が危険だと思うんだが
で、セルを挿入したい時も一個一個数値をずらしていくの?
ワークシートの見た目が二次元配列である事とコード内容を一致させる必要性も感じないんだが、
もしかしてハードコーディングしてるのか?
イミディエイトウインドウで毎回インデックスを調べろっていうは面白すぎるから止めて欲しい
名前定義が弄られるってことはロックしないで使うんでしょ
猶更、セル挿入なりで意図した場所とズレてても気づかずに成功し続ける方が危険だと思うんだが
で、セルを挿入したい時も一個一個数値をずらしていくの?
ワークシートの見た目が二次元配列である事とコード内容を一致させる必要性も感じないんだが、
もしかしてハードコーディングしてるのか?
イミディエイトウインドウで毎回インデックスを調べろっていうは面白すぎるから止めて欲しい
105デフォルトの名無しさん (ワッチョイ 091f-hvDm)
2020/03/29(日) 00:11:14.41ID:JMfmjWXB0 Shapeの当たり判定の計算方法を教えて下さい。
基準の円のShapeにTextBoxが当ってたらTrue、当たって無ければFalse
円は選択時の□の面積じゃなく実際の円の大きさ。TextBoxは選択時の□の大きさ。
基準の円のShapeにTextBoxが当ってたらTrue、当たって無ければFalse
円は選択時の□の面積じゃなく実際の円の大きさ。TextBoxは選択時の□の大きさ。
106デフォルトの名無しさん (ワッチョイ 79ac-iBrl)
2020/03/29(日) 00:41:59.73ID:Q4J2OaKi0 なぜそんなことを
107デフォルトの名無しさん (ワッチョイ b57c-K+F1)
2020/03/29(日) 01:29:27.30ID:Iv7ta0000 >>105
表示位置とサイズから比較したらいいんじゃね
表示位置とサイズから比較したらいいんじゃね
108デフォルトの名無しさん (ワッチョイ 9eda-Cd0d)
2020/03/29(日) 01:42:07.54ID:hSuS8nXs0 当たり判定だからゲームじゃないの?
Corei世代でも60fpsでないから使いたくないけど。
Corei世代でも60fpsでないから使いたくないけど。
109デフォルトの名無しさん (ワッチョイ 0dce-Cd0d)
2020/03/29(日) 08:29:34.23ID:sBDU9ajX0 >>105
専用の関数などは用意されてないので、TextBoxの頂点と円の座標を比較したり、円の中心からの距離を三角関数で計算して調べるしかない
専用の関数などは用意されてないので、TextBoxの頂点と円の座標を比較したり、円の中心からの距離を三角関数で計算して調べるしかない
110デフォルトの名無しさん (ワッチョイ a9ad-yXVd)
2020/03/29(日) 09:06:15.85ID:hrvcX8VW0 VBAであえてゲーム作ったりするのは
芸ではあるけど開発効率的に筋は悪いよね
グラフィックにこだわるなら別言語推奨
芸ではあるけど開発効率的に筋は悪いよね
グラフィックにこだわるなら別言語推奨
111デフォルトの名無しさん (ワッチョイ 4191-tYYp)
2020/03/29(日) 19:07:35.84ID:+LkL5rVp0 >>102
普通は定数で行、列を宣言するわな。
>>103
見にくいコードは書いてる奴の力量次第だろ。
>>104
ロックはしない。
そんなもんは解除されるかもしれんし、当てにしない。
というか、作ってるもの次第だね。
ワークシートの見た目と二次元配列を一致させるとか笑わせるなあ。
少し慣れた奴なら列も数値で扱うのがぴったり来るんだよ。
何故なら、最初から二次元配列的に考えるから。
VBE上に自作のメニュ―作って、入力するだけで列名←→列数はわかるげとな。
作る力量無い奴はイミディエイトで調べりゃ良いだろ。
VBEのCommandBerでイベント扱うのはクラスが必要だし、上級者の領分にはなるかもな。
VBE弄るVBAは会社じゃ使わないから通常のCommandBarでメニュー作ってやっても良いんじゃね?
どっちにしても時間は考えることに使ってるんで、毎回イミディエイトで調べても大した話じゃね―んだわ。
普通は定数で行、列を宣言するわな。
>>103
見にくいコードは書いてる奴の力量次第だろ。
>>104
ロックはしない。
そんなもんは解除されるかもしれんし、当てにしない。
というか、作ってるもの次第だね。
ワークシートの見た目と二次元配列を一致させるとか笑わせるなあ。
少し慣れた奴なら列も数値で扱うのがぴったり来るんだよ。
何故なら、最初から二次元配列的に考えるから。
VBE上に自作のメニュ―作って、入力するだけで列名←→列数はわかるげとな。
作る力量無い奴はイミディエイトで調べりゃ良いだろ。
VBEのCommandBerでイベント扱うのはクラスが必要だし、上級者の領分にはなるかもな。
VBE弄るVBAは会社じゃ使わないから通常のCommandBarでメニュー作ってやっても良いんじゃね?
どっちにしても時間は考えることに使ってるんで、毎回イミディエイトで調べても大した話じゃね―んだわ。
112デフォルトの名無しさん (ラクッペペ MM96-LCDD)
2020/03/29(日) 19:28:33.88ID:Gw3heoMsM >>63
今の若いヤツらはそういう説明じゃ200%挫折する。普段の業務を自動化っていう感覚がわからないそう。やっぱスマホタブレット世代はPC=ワープロにしか思えんのかもな。
今の若いヤツらはそういう説明じゃ200%挫折する。普段の業務を自動化っていう感覚がわからないそう。やっぱスマホタブレット世代はPC=ワープロにしか思えんのかもな。
113デフォルトの名無しさん (スププ Sdb2-Ik0M)
2020/03/29(日) 20:04:11.28ID:83saJEjVd 若いほうがわかりそうなイメージあるが
114デフォルトの名無しさん (スププ Sdb2-Ik0M)
2020/03/29(日) 20:07:10.84ID:83saJEjVd >>111
ロック外されたくないならパスワード付ければいいじゃん
ロック外されたくないならパスワード付ければいいじゃん
115デフォルトの名無しさん (ワッチョイ 4191-tYYp)
2020/03/29(日) 20:28:31.63ID:+LkL5rVp0 >>114
パスワードwww
パスワードwww
116デフォルトの名無しさん (ワッチョイ 9201-aXsr)
2020/03/29(日) 20:55:58.91ID:wDs4yIM00117デフォルトの名無しさん (ワッチョイ 12ad-At9V)
2020/03/29(日) 22:56:25.49ID:WhhHvRXO0 共有編集可能にしたら更新は5分間隔だけどVBAとかで1分以内にできないかな?複数のパソコンで映してる同じエクセルファイルの内容を別のパソコンから共有編集で編集して保存したら1分以内に複数のパソコンにも表示を反映させたい。
118デフォルトの名無しさん (アウアウエー Sada-pf+t)
2020/03/30(月) 01:33:21.63ID:hihORIFda あ、どうせ、コピーしても意味ねぇよ。記憶してるのPCじゃねぇから。
119デフォルトの名無しさん (アウアウエー Sada-pf+t)
2020/03/30(月) 01:33:39.62ID:hihORIFda 考えまとめるためにPC使ってるだけ、ただそれだけなんだよ。
120デフォルトの名無しさん (ワッチョイ 4191-tYYp)
2020/03/30(月) 09:44:28.26ID:c+7OLkMF0 >>116
君にできないからと言って、そんなもんが自慢になると思うかね?
君にできないからと言って、そんなもんが自慢になると思うかね?
121デフォルトの名無しさん (オッペケ Sr79-7qnn)
2020/03/30(月) 10:45:50.00ID:44eTx7Dtr >>96
それでも同じエラーが出ます…
それでも同じエラーが出ます…
122デフォルトの名無しさん (ドコグロ MM9a-aXsr)
2020/03/30(月) 10:57:15.53ID:XiEELtFfM123デフォルトの名無しさん (ワッチョイ f6f7-DNZ3)
2020/03/30(月) 12:35:49.56ID:rHF2nN3k0124デフォルトの名無しさん (ワッチョイ 5ecc-Cd0d)
2020/03/30(月) 13:30:25.60ID:8cfGBpvw0 いや、いらないのはそっちじゃなくて、ElseIf〜 のIf〜Then
If Not c Is Nothing Then
If wS1.Cells(c.Row,"Z").value<0 Then
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
Else
.Cells(i, "X") = wS1.Cells(c.Row, "Q")
Endif
Endif
でいいはず
エラーが出たのが実は一つ上の行で、i に代入してなかったってオチじゃないよね
If Not c Is Nothing Then
If wS1.Cells(c.Row,"Z").value<0 Then
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
Else
.Cells(i, "X") = wS1.Cells(c.Row, "Q")
Endif
Endif
でいいはず
エラーが出たのが実は一つ上の行で、i に代入してなかったってオチじゃないよね
125デフォルトの名無しさん (スッップ Sdb2-tYYp)
2020/03/30(月) 15:51:59.33ID:pRaklD1Wd >>122
悔しいからって一々反応しなくて良いんだぞwww
悔しいからって一々反応しなくて良いんだぞwww
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- コウメ太夫のネタ考えたから評価してくれ
- トランプ、G7に代わるcore 5を発表 [805596214]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 高市ってわざと日本を壊そうとしているスパイ的な役割なんじゃないか? [677076729]
