ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part65
https://mevius.5ch.net/test/read.cgi/tech/1584430040/
※デフォルト設定
探検
Excel VBA 質問スレ Part66
レス数が1000を超えています。これ以上書き込みはできません。
11000
2020/05/10(日) 13:43:45.00ID:Nkoph0aj2デフォルトの名無しさん
2020/05/10(日) 14:01:00.89ID:DMAkCTap 馬鹿はお断りです
2020/05/10(日) 14:06:35.91ID:fjy5hAwc
4デフォルトの名無しさん
2020/05/10(日) 14:40:29.46ID:6j4C5UpV 相談させてください。
あるデータ群に対して、データの大小が分かりやすいように
「条件付き書式」→「カラースケール」でセルの色付けをしています。
セルに色付けた後に、セル中の数字が邪魔で、数字を見えなくしたいと考えています。
最初考えたのは、各セルに対してセル色と同色のフォント設定をすればよいと思いました。
が、どうも条件付き書式でつけられたセルの色は、セルの色ではないらしく
.Interior.Color→色なし(16777215)、とのことで詰まってしまいました。
カラースケールで色付けた後に、文字が見えなる方法について存知の方、
アイディア思いつく方いましたらご教授お願いいたします。
あるデータ群に対して、データの大小が分かりやすいように
「条件付き書式」→「カラースケール」でセルの色付けをしています。
セルに色付けた後に、セル中の数字が邪魔で、数字を見えなくしたいと考えています。
最初考えたのは、各セルに対してセル色と同色のフォント設定をすればよいと思いました。
が、どうも条件付き書式でつけられたセルの色は、セルの色ではないらしく
.Interior.Color→色なし(16777215)、とのことで詰まってしまいました。
カラースケールで色付けた後に、文字が見えなる方法について存知の方、
アイディア思いつく方いましたらご教授お願いいたします。
2020/05/10(日) 15:15:18.60ID:kwQy/6Oy
表示形式を ;;; にする
2020/05/10(日) 15:54:19.09ID:mjv4KBjx
最初からデータは別の位置に書いて色付けしたいセルは空白のままにしときゃいいんじゃね
2020/05/10(日) 15:59:47.87ID:CxQ0TYrj
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
ID:74X5YOol0
ID:MibsCGor0
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
8デフォルトの名無しさん
2020/05/10(日) 18:27:55.19ID:6j4C5UpV2020/05/10(日) 18:58:46.91ID:Nkoph0aj
>>8
セルに色を付けた場合、条件付き書式の条件が成り立った場合に指定した書式で上書きされる
セルに色を付けた場合、条件付き書式の条件が成り立った場合に指定した書式で上書きされる
2020/05/10(日) 22:53:46.38ID:EYEPvAyt
2020/05/10(日) 23:36:04.86ID:Jph/G5XN
>>1
ワッチョイ外すなよ…
ワッチョイ外すなよ…
2020/05/11(月) 00:07:01.29ID:mMUKFdwn
>>4
元々、そのデータ全部の文字を見えなくしたいなら条件付き書式で文字も背景色と一緒にすれば可能だけどお勧めはしないね。
元々、そのデータ全部の文字を見えなくしたいなら条件付き書式で文字も背景色と一緒にすれば可能だけどお勧めはしないね。
2020/05/11(月) 00:39:33.76ID:ezdiPeRt
>>10
そうだな、日本語勉強して自分で書き込んだ↓の意味を整理して答えてくれww
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
そうだな、日本語勉強して自分で書き込んだ↓の意味を整理して答えてくれww
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
2020/05/11(月) 07:43:54.86ID:bK9/OgSI
2020/05/11(月) 09:32:52.11ID:ezdiPeRt
>>14
じゃあ具体的に何通り思い付くんだよw
ww
で、それが最善じゃないのか?できる奴の癖にww
>出来る奴は瞬時に何通りかは思いつく。
>出来る奴は瞬時に何通りかは思いつく。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
じゃあ具体的に何通り思い付くんだよw
ww
で、それが最善じゃないのか?できる奴の癖にww
>出来る奴は瞬時に何通りかは思いつく。
>出来る奴は瞬時に何通りかは思いつく。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
2020/05/11(月) 12:22:41.47ID:lwYcgX7G
中坊の喧嘩だなw
2020/05/11(月) 12:31:54.72ID:bK9/OgSI
>>15
やっと理解出来たようだな。
勝手な思い込みで先走るのはいかんね。
理解出来たら、勝手な思い込みで迷惑かけてるんだから謝罪するのがまともだと思うがw
具体的って、そんなの内容によるわな。
最善って、だからその場合は1通りだが、条件等で最善は変わるから条件が詰められて無ければ1通りじゃ無いぞ。
ここみたいな質問の場合は条件が詰められて無いことも多いしな。
具体的な例なら今は無理だから帰りの時だな。
やっと理解出来たようだな。
勝手な思い込みで先走るのはいかんね。
理解出来たら、勝手な思い込みで迷惑かけてるんだから謝罪するのがまともだと思うがw
具体的って、そんなの内容によるわな。
最善って、だからその場合は1通りだが、条件等で最善は変わるから条件が詰められて無ければ1通りじゃ無いぞ。
ここみたいな質問の場合は条件が詰められて無いことも多いしな。
具体的な例なら今は無理だから帰りの時だな。
2020/05/11(月) 13:33:17.39ID:ezdiPeRt
>>17
>>14
具体的に何通りだよw
言うことブレブレすぎだww
お前は「言ってることがブレブレでごめんなさいもうしません」って謝れよww
それともあれか?「質問の意味がわかってないバカです」て認めるか?ww
>出来る奴は瞬時に何通りかは思いつく。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
>>14
具体的に何通りだよw
言うことブレブレすぎだww
お前は「言ってることがブレブレでごめんなさいもうしません」って謝れよww
それともあれか?「質問の意味がわかってないバカです」て認めるか?ww
>出来る奴は瞬時に何通りかは思いつく。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>出来る奴は瞬時に何通りかは思いつく。
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
2020/05/11(月) 13:36:33.50ID:P+KlkuxK
まだやってたのか
2020/05/11(月) 13:49:01.07ID:ezdiPeRt
自称「できるやつ」の名言集w
でもこいつは回答にコードも出さない素人以下ww
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
ID:bK9/OgSI
(1) 最善の方法が唯一になると明言w
>「バカと違って」質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
(2) できる奴は何通りも思い付くw
>出来る奴は瞬時に何通りかは思いつく。
(3) 唯一になるといった直ぐあとに手のひらクルーww
>最善って、だからその場合は1通りだが、条件等で最善は変わるから条件が詰められて無ければ1通りじゃ無いぞ。
(4) 唯一のできるやつの最善の方法が改善できるとかww最善じゃねえww
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
(5) そしてプライド高そうなベテラン自慢ww
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
でもこいつは回答にコードも出さない素人以下ww
ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0
ID:EYEPvAyt
ID:bK9/OgSI
(1) 最善の方法が唯一になると明言w
>「バカと違って」質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
(2) できる奴は何通りも思い付くw
>出来る奴は瞬時に何通りかは思いつく。
(3) 唯一になるといった直ぐあとに手のひらクルーww
>最善って、だからその場合は1通りだが、条件等で最善は変わるから条件が詰められて無ければ1通りじゃ無いぞ。
(4) 唯一のできるやつの最善の方法が改善できるとかww最善じゃねえww
>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
(5) そしてプライド高そうなベテラン自慢ww
>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。
2020/05/11(月) 14:49:47.55ID:lwYcgX7G
あぼ〜ん機能って便利だな
2020/05/11(月) 18:48:04.13ID:oJQz2woi
俺より馬鹿なやつっているんだな
みっともない喧嘩だねぇ
みっともない喧嘩だねぇ
2020/05/11(月) 19:14:46.82ID:lwYcgX7G
粘着はたちが悪いからな
24デフォルトの名無しさん
2020/05/11(月) 19:17:32.38ID:r23wnlJu このスレのおかげで自殺者が2人減ったと思えば我慢できるだろ?
いや、そうでもないか
何が楽しくて生きているのだろう
いや、そうでもないか
何が楽しくて生きているのだろう
2020/05/11(月) 21:28:55.62ID:bK9/OgSI
>>18
全くブレて無いんだがw
最初から何通りかは思いつくと言ってるだろw
最初から具体的に何通りなどと想定していない発言だ。
内容によって3通りになる場合もあれば5通りになる場合もある。
それに最適と考える1通りの場合だってある。
←これがあるから「何通りかは思いつく」の発言で、「最適の1通りの場合もありうる」等と追加して全ての状況に対応する必要は無い。
こんなのは日本語扱っていれば当然の話だからだ。
そうしないと、やり取り自体が出来なくなる。
お前の「ブレブレ」という単語の意味はどの辞書に載っているどういう意味なのか、そしてそういう説明をしていないからその不備をもって日本語が出来ていない等と突っ込むことなどという事態になってしまう。
だから相手の言っている意味を推し量ってやり取りをする必要があるし、俺もお前も実際にそうしてる。
しかし、お前の「・瞬時に5個思い付く(ドヤア)」は、「瞬時に5通り思いついたとして」の例示に対して、常に5通り思いつくと解釈したということだ。
これは完全にお前の日本語の理解が未熟だということを表している。
全くブレて無いんだがw
最初から何通りかは思いつくと言ってるだろw
最初から具体的に何通りなどと想定していない発言だ。
内容によって3通りになる場合もあれば5通りになる場合もある。
それに最適と考える1通りの場合だってある。
←これがあるから「何通りかは思いつく」の発言で、「最適の1通りの場合もありうる」等と追加して全ての状況に対応する必要は無い。
こんなのは日本語扱っていれば当然の話だからだ。
そうしないと、やり取り自体が出来なくなる。
お前の「ブレブレ」という単語の意味はどの辞書に載っているどういう意味なのか、そしてそういう説明をしていないからその不備をもって日本語が出来ていない等と突っ込むことなどという事態になってしまう。
だから相手の言っている意味を推し量ってやり取りをする必要があるし、俺もお前も実際にそうしてる。
しかし、お前の「・瞬時に5個思い付く(ドヤア)」は、「瞬時に5通り思いついたとして」の例示に対して、常に5通り思いつくと解釈したということだ。
これは完全にお前の日本語の理解が未熟だということを表している。
2020/05/11(月) 21:32:42.15ID:bK9/OgSI
そういうわけで「ブレブレ」なら俺の何処が「ブレブレ」なのかを示す必要がある。
そして、お前はまだ日本語の理解不足でかけた迷惑を謝罪していないな。
理解不足でないと言うなら、お前の「・瞬時に5個思い付く(ドヤア)」は日本語としてどういう解釈の後に成り立っているかを示す必要がある。
そして、お前はまだ日本語の理解不足でかけた迷惑を謝罪していないな。
理解不足でないと言うなら、お前の「・瞬時に5個思い付く(ドヤア)」は日本語としてどういう解釈の後に成り立っているかを示す必要がある。
2020/05/11(月) 21:49:29.25ID:lwYcgX7G
>>24
いがみ合う二人を作ってしまうようなスレならば、無い方がいいのかもしれない
いがみ合う二人を作ってしまうようなスレならば、無い方がいいのかもしれない
2020/05/11(月) 22:26:32.22ID:71O9fy8g
精度1ms程度、20ms間隔でイベントを発生させたいんですがVBAで使える良いタイマーは無いでしょうか
settimerでは精度も分解能も足りないようです。
settimerでは精度も分解能も足りないようです。
2020/05/11(月) 22:47:05.78ID:Z5nXEgsW
>>28
その間止まってる?何か処理動いてる?
その間止まってる?何か処理動いてる?
2020/05/11(月) 23:01:43.10ID:545F5kn8
そもそも高精度タイマーつかわんと、標準のタイマーで1msは無理なんだが
2020/05/12(火) 00:34:19.26ID:SrnItsWT
>>25
ブレてんじゃんww
できる奴なんだろ?
じゃないなら「私の"何通り"には1つでも含まれますごめんなさいもうしません」って謝れよww
あとコード付で答えたことないこともなw
>出来る奴は瞬時に何通りかは思いつく。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>内容によって3通りになる場合もあれば5通りになる場合もある。
>それに最適と考える1通りの場合だってある。
お前はVBAならintもint()も同一視するのかよww
素人めw
1個か3個か5個か、断言も出来ない臆病者めww
ブレてんじゃんww
できる奴なんだろ?
じゃないなら「私の"何通り"には1つでも含まれますごめんなさいもうしません」って謝れよww
あとコード付で答えたことないこともなw
>出来る奴は瞬時に何通りかは思いつく。
>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。
>内容によって3通りになる場合もあれば5通りになる場合もある。
>それに最適と考える1通りの場合だってある。
お前はVBAならintもint()も同一視するのかよww
素人めw
1個か3個か5個か、断言も出来ない臆病者めww
2020/05/12(火) 00:41:52.39ID:SrnItsWT
>>25
言い訳がましいんだよなww
>最初から具体的に何通りなどと想定していない発言だ。
→普通ツッコまれるから想定するんだよなあw
>内容によって3通りになる場合もあれば5通りになる場合もある。
それに最適と考える1通りの場合だってある。
→最適は1つじゃないのかねww
それとも要件がわからないから最適と言えませんぴえーんとか社会で言ってるのかww
>←これがあるから「何通りかは思いつく」の発言で、「最適の1通りの場合もありうる」等と追加して全ての状況に対応する必要は無い。
→後だしで言い訳ww
それまでずっと「何通りか」を固持してるのになww
>お前の「ブレブレ」という単語の意味はどの辞書に載っているどういう意味なのか、そしてそういう説明をしていないからその不備をもって日本語が出来ていない等と突っ込むことなどという事態になってしまう。
→頭固いねえw日本語の由来とかにこだわって嫌われるタイプだろwwww
そんなんだからずっとVBAおじさんなんだよw
>しかし、お前の「・瞬時に5個思い付く(ドヤア)」は、「瞬時に5通り思いついたとして」の例示に対して、常に5通り思いつくと解釈したということだ。
→じゃあ「何通りか思いつく」は具体的に何個なんだよww
腹くくってきめろやww
言い訳がましいんだよなww
>最初から具体的に何通りなどと想定していない発言だ。
→普通ツッコまれるから想定するんだよなあw
>内容によって3通りになる場合もあれば5通りになる場合もある。
それに最適と考える1通りの場合だってある。
→最適は1つじゃないのかねww
それとも要件がわからないから最適と言えませんぴえーんとか社会で言ってるのかww
>←これがあるから「何通りかは思いつく」の発言で、「最適の1通りの場合もありうる」等と追加して全ての状況に対応する必要は無い。
→後だしで言い訳ww
それまでずっと「何通りか」を固持してるのになww
>お前の「ブレブレ」という単語の意味はどの辞書に載っているどういう意味なのか、そしてそういう説明をしていないからその不備をもって日本語が出来ていない等と突っ込むことなどという事態になってしまう。
→頭固いねえw日本語の由来とかにこだわって嫌われるタイプだろwwww
そんなんだからずっとVBAおじさんなんだよw
>しかし、お前の「・瞬時に5個思い付く(ドヤア)」は、「瞬時に5通り思いついたとして」の例示に対して、常に5通り思いつくと解釈したということだ。
→じゃあ「何通りか思いつく」は具体的に何個なんだよww
腹くくってきめろやww
2020/05/12(火) 00:51:58.58ID:SrnItsWT
>>31
面白いよなww
仮に結論をそっちに寄せると、
今までの発言が全て、
「瞬時に思い付きます。でもそれは1通りでもあるし複数通りでもあるし、思い付かないかもしれません」
とかいう、「私は10年以上のベテラン(笑)だけど雑魚です」って告白するような発言になるんだぜww
こんなちょろいやつ初めてだわw
サンプルコードも出せないわけですわww
面白いよなww
仮に結論をそっちに寄せると、
今までの発言が全て、
「瞬時に思い付きます。でもそれは1通りでもあるし複数通りでもあるし、思い付かないかもしれません」
とかいう、「私は10年以上のベテラン(笑)だけど雑魚です」って告白するような発言になるんだぜww
こんなちょろいやつ初めてだわw
サンプルコードも出せないわけですわww
2020/05/12(火) 07:39:51.79ID:I4uaPjG2
2020/05/12(火) 07:42:40.74ID:I4uaPjG2
2020/05/12(火) 07:45:00.31ID:I4uaPjG2
2020/05/12(火) 07:47:08.17ID:I4uaPjG2
2020/05/12(火) 07:50:53.21ID:FFR24bht
>>33
これだけはその通りで草
これだけはその通りで草
2020/05/12(火) 08:13:35.16ID:FFR24bht
>>34
VBA10年おじさん大発狂の4連投してて草
高血圧だな、体は大事にしろよw
>だからどこがブレてんだよwww
自分が日本語分かってねえじゃねえかw
「場合による」は後だしだぞww何通りかは思い付くの時点で名言してるか?ww
>お前の考えだと頭が固くなるという話をしたのにw
お前のは表現のゆらぎじゃなくて、明確にずれてんだよw
ほら、1個か3個か?臆病者めwww
>全てに対応したやり取りなんて出来ないし、誰もやってないと言ってるんだ。
10年おじさんなら最適解出せるだろ?w
「瞬時に思い付きます。でもそれは1通りでもあるし複数通りでもあるし、思い付かないかもしれません。私は10年以上のベテラン(笑)だけど雑魚ですすいません」って告白してもいいぞw
>ところで、「・瞬時に5個思い付く(ドヤア)」が間違ってたことについては無視か?
最初から何個か名言しない臆病者のせいで仮に特定してあげてるだけだよww
お前のせいじゃんwww
5個のところ好きな数字にしろよww
数字特定したら次はほんとに「瞬時に思い付くか」テストしたげてもいいなw
てか>>28にも答えてないしなw
10年以上やってるのにww
VBA10年おじさん大発狂の4連投してて草
高血圧だな、体は大事にしろよw
>だからどこがブレてんだよwww
自分が日本語分かってねえじゃねえかw
「場合による」は後だしだぞww何通りかは思い付くの時点で名言してるか?ww
>お前の考えだと頭が固くなるという話をしたのにw
お前のは表現のゆらぎじゃなくて、明確にずれてんだよw
ほら、1個か3個か?臆病者めwww
>全てに対応したやり取りなんて出来ないし、誰もやってないと言ってるんだ。
10年おじさんなら最適解出せるだろ?w
「瞬時に思い付きます。でもそれは1通りでもあるし複数通りでもあるし、思い付かないかもしれません。私は10年以上のベテラン(笑)だけど雑魚ですすいません」って告白してもいいぞw
>ところで、「・瞬時に5個思い付く(ドヤア)」が間違ってたことについては無視か?
最初から何個か名言しない臆病者のせいで仮に特定してあげてるだけだよww
お前のせいじゃんwww
5個のところ好きな数字にしろよww
数字特定したら次はほんとに「瞬時に思い付くか」テストしたげてもいいなw
てか>>28にも答えてないしなw
10年以上やってるのにww
2020/05/12(火) 12:29:54.81ID:I4uaPjG2
2020/05/12(火) 13:47:56.69ID:8FYlmiYH
2020/05/12(火) 13:53:42.12ID:8FYlmiYH
これに懲りたらてきとーなこと言ったり「10年以上前だけど(ドヤア)」とか言うの控えとけよww
こうやって恥かくからなww
あ、でもまた数年後思い出して修正するんでしたっけww
こいつのプロダクトとかアウトプットは信用できないなww
こうやって恥かくからなww
あ、でもまた数年後思い出して修正するんでしたっけww
こいつのプロダクトとかアウトプットは信用できないなww
2020/05/12(火) 16:56:54.34ID:rA4rVxbw
その熱量を分けてくれ
2020/05/12(火) 17:47:19.57ID:kYSBNuZD
ここで教わった「空白になるまで」とか
「空白じゃなければ」
って言うのが自分の職場で凄い役に立って多用してますわ
ケースによるんだろうけどこれが当たり前なのかあまり使わない方がいいのはわからない
Sub 空白まで処理 ()
Dim gy As Long
Do while cells(gy, 5) <> ""
何かの処理
gy = gy + 1
loop
End Sub
Sub 作成者を入力させる ()
Dim Ib As String
Ib = Inputbox ("フルネームで入力して下さい","作成者","")
If Ib <>"" Then
Range("A4").value = Ib
Else
Msgbox ("後で入力して下さい",vbokonly,"作成者欄")
End If
End Sub
ここら辺とか職場で多用してたら俺です。
あと色々覚えて作ってて思うのが絶望的に変数の名付け方にセンスが無い…
データ型は深く覚えなくてもいいってサイトで見たけどVbMsgBoxResultとか前スレで教えたくた人のおかげで役立ってるし多分覚えた方がいいデータ型も結構あるんだろうなぁと
「空白じゃなければ」
って言うのが自分の職場で凄い役に立って多用してますわ
ケースによるんだろうけどこれが当たり前なのかあまり使わない方がいいのはわからない
Sub 空白まで処理 ()
Dim gy As Long
Do while cells(gy, 5) <> ""
何かの処理
gy = gy + 1
loop
End Sub
Sub 作成者を入力させる ()
Dim Ib As String
Ib = Inputbox ("フルネームで入力して下さい","作成者","")
If Ib <>"" Then
Range("A4").value = Ib
Else
Msgbox ("後で入力して下さい",vbokonly,"作成者欄")
End If
End Sub
ここら辺とか職場で多用してたら俺です。
あと色々覚えて作ってて思うのが絶望的に変数の名付け方にセンスが無い…
データ型は深く覚えなくてもいいってサイトで見たけどVbMsgBoxResultとか前スレで教えたくた人のおかげで役立ってるし多分覚えた方がいいデータ型も結構あるんだろうなぁと
45デフォルトの名無しさん
2020/05/12(火) 18:29:41.52ID:mEZSl2qw if文ってスゲー便利!って言ってるのと変わらんぞ
条件ループなんてプログラミング言語として最低限の必須機能
条件ループなんてプログラミング言語として最低限の必須機能
2020/05/12(火) 18:56:23.44ID:kYSBNuZD
>>45
変わらんぞというかまさにそこに感動してるレベルの入門者ですよ
ただ毎日コードを何かしら書かないとすぐ忘れ書き方のルールを忘れちゃいますわ
ある程度多用する基本的なコードは自分でテンプレ作ってそこから引用してるから
必要なコードは必要な時だけそこから引っ張れば良いという人ももいたけどやっぱこのマクロ作ろうと思ってカタカタと悩まずに打って作れるようになりたいですね
変わらんぞというかまさにそこに感動してるレベルの入門者ですよ
ただ毎日コードを何かしら書かないとすぐ忘れ書き方のルールを忘れちゃいますわ
ある程度多用する基本的なコードは自分でテンプレ作ってそこから引用してるから
必要なコードは必要な時だけそこから引っ張れば良いという人ももいたけどやっぱこのマクロ作ろうと思ってカタカタと悩まずに打って作れるようになりたいですね
2020/05/12(火) 19:58:51.70ID:+ufJa1rh
2020/05/12(火) 20:04:14.59ID:DpVh1gfo
システムにお願いしても駄目ならプロセスのプライオリティを
思い切り上げて他のプロセスをできるだけ起動させないとか。
思い切り上げて他のプロセスをできるだけ起動させないとか。
49デフォルトの名無しさん
2020/05/12(火) 20:42:29.83ID:UaCqmgBQ2020/05/12(火) 20:49:40.88ID:kYSBNuZD
51デフォルトの名無しさん
2020/05/12(火) 20:54:41.98ID:UaCqmgBQ は?手打ちならVBEに入力しなきゃ意味ないだろう
それとも常時Excelに触ることができない環境でイメージトレーニングでもしているの?
それならキーボードじゃなくて手書きをお勧めするよ
それとも常時Excelに触ることができない環境でイメージトレーニングでもしているの?
それならキーボードじゃなくて手書きをお勧めするよ
2020/05/12(火) 20:57:51.11ID:+ufJa1rh
自治厨うざっ
2020/05/12(火) 21:00:50.06ID:kYSBNuZD
いやVBE触りながらスマホで2ちゃんもやってるんよ
家帰ってダラダラしたいのに勉強しなきゃという強迫観念すらあるんですわ
そのぐらい使いこなせるようになりたひ
家帰ってダラダラしたいのに勉強しなきゃという強迫観念すらあるんですわ
そのぐらい使いこなせるようになりたひ
2020/05/12(火) 21:01:39.78ID:I4uaPjG2
55デフォルトの名無しさん
2020/05/12(火) 21:03:00.03ID:UaCqmgBQ へー、スマホで打ち込んだのか
スゲーな
尊敬するわ
スゲーな
尊敬するわ
2020/05/12(火) 23:00:42.24ID:E9stGPs+
プログラミングはif文に始まりif文に終わる
2020/05/12(火) 23:09:10.91ID:wZ0jz+Fj
endifで終わるとか言ってみる
2020/05/12(火) 23:41:32.90ID:+oXZY/9K
スマホは本当に入力がむずかしい
iphoneだけど、@ とか ? とか ; とか、
半角と全角を見分ける方法ないですかね
iphoneだけど、@ とか ? とか ; とか、
半角と全角を見分ける方法ないですかね
59デフォルトの名無しさん
2020/05/12(火) 23:46:48.30ID:afM3cpmW2020/05/13(水) 00:01:32.19ID:J5ZD6qBk
>>58
表示フォント変えられないのか?
表示フォント変えられないのか?
2020/05/13(水) 08:48:22.54ID:EdihJer9
2020/05/13(水) 14:24:20.48ID:MXc7+Bkx
>>58
俺より馬鹿じゃないから気にしなくて良いよ!
俺より馬鹿じゃないから気にしなくて良いよ!
2020/05/13(水) 16:28:05.50ID:plPxHhzS
VBA7以前でPtrSafe付コードを修正する際にコンパイルエラーを避けるには、該当箇所を一つずつコメントアウトしないといけないのでしょうか
2020/05/13(水) 19:05:47.04ID:LXKghMMB
'変数cに列番号が記録されており、その右隣の列から右に向かって最終列(変数LastCol)までに一つ目の文字列"型式"がある1つ手前の列番号を変数ccに記録したいのですが、これであってますか?
cc = Range( c : LastCol ).Find("型式").Columns - 1
cc = Range( c : LastCol ).Find("型式").Columns - 1
6564
2020/05/13(水) 19:07:10.17ID:LXKghMMB ↑1行目だけでする場合をお願いします
2020/05/13(水) 19:55:58.54ID:y5a8J0I9
検索条件が甘いのと見つかんないとエラーが出るのが問題だけど
cc = Range(Columns(c + 1), Columns(LastCol)).Find("型式").Column - 1
cc = Range(Columns(c + 1), Columns(LastCol)).Find("型式").Column - 1
2020/05/13(水) 19:57:35.91ID:53iRH1vl
有ってない
2020/05/14(木) 10:15:33.79ID:PW5MRjsJ
>>41
結局、勝ち負けだけで論理的に正しい間違いはどうでも良い奴だったな。
こういう奴は確かに拘ることをしないからいつまでたっても初心者を脱っすることが出来ない。
実際には言い負かされてるんだが言い負かされなかった形だけあれば満足すると。
こういう糞がどこで自尊心を保っているのか全く理解出来んw
結局、勝ち負けだけで論理的に正しい間違いはどうでも良い奴だったな。
こういう奴は確かに拘ることをしないからいつまでたっても初心者を脱っすることが出来ない。
実際には言い負かされてるんだが言い負かされなかった形だけあれば満足すると。
こういう糞がどこで自尊心を保っているのか全く理解出来んw
2020/05/14(木) 10:46:53.77ID:n+ookAJT
基地外同士のケンカがやっと終わったか
最初に引いた奴の方が偉いな
はい次の方
最初に引いた奴の方が偉いな
はい次の方
2020/05/14(木) 14:49:40.82ID:PW5MRjsJ
>>70
悔しいのか?
悔しいのか?
72デフォルトの名無しさん
2020/05/14(木) 15:41:22.22ID:uf0GqGLY2020/05/14(木) 19:23:42.76ID:gToX6xvs
ネットで拾ったコードをつぎはぎ足してoffice2010のExcelで使ってたけど
今年会社がやっと2019に上げるらしい
使えなくなるコードがあったら終わるわ
今年会社がやっと2019に上げるらしい
使えなくなるコードがあったら終わるわ
2020/05/14(木) 20:29:36.41ID:Q92dSSfg
32bit→64bitならエラーが出るかもだが、それ以外は特に変更はないはず
2020/05/14(木) 21:48:19.93ID:I7glJUMv
クラス化して再利用考えて作ってたのですが、getter経由で取得したデータを処理したり、ボタン関係の養生したり、フォームに描画反映したりでユーザーフォームにコードが集中してしまいました
構造が悪いのでしょうか
ユーザーフォーム
-ボタンイベントコールバッククラス
-シートのデータ書き換えクラス
-割込タイマークラス
-シリアル機器インターフェースクラス
--各機器のラッパークラス
---COMポートクラス
構造が悪いのでしょうか
ユーザーフォーム
-ボタンイベントコールバッククラス
-シートのデータ書き換えクラス
-割込タイマークラス
-シリアル機器インターフェースクラス
--各機器のラッパークラス
---COMポートクラス
2020/05/14(木) 21:52:56.60ID:pdcPp9kM
2020/05/14(木) 22:15:42.82ID:Q92dSSfg
>>75
単純にGetter以外のメソッドを実装すればいいのでは?
単純にGetter以外のメソッドを実装すればいいのでは?
2020/05/14(木) 22:42:08.69ID:tZ6/JvsB
>>73
MDIとSDIの違いに気をつけて
MDIとSDIの違いに気をつけて
2020/05/14(木) 23:22:45.71ID:gToX6xvs
ユーザーフォームは俺のようなVBA超初心者にとって憧れだわ
ある程度マクロ作ったら
とりあえずThisWorkbookのとこで
Private sub Workbook_Open()
UserForm1. Show
End Sub
を作って
ユーザーフォームのShowModalをFalseにする
↓
で使えるのはコマンドボタンという…
ボタンクリックに標準モジュールで作ったプロシージャ名を貼り付けると…
毎回これじゃそりゃ上達しないわ
もっとコード覚えて効率的な高見を目指したいところだけど脳がついていかない
ある程度マクロ作ったら
とりあえずThisWorkbookのとこで
Private sub Workbook_Open()
UserForm1. Show
End Sub
を作って
ユーザーフォームのShowModalをFalseにする
↓
で使えるのはコマンドボタンという…
ボタンクリックに標準モジュールで作ったプロシージャ名を貼り付けると…
毎回これじゃそりゃ上達しないわ
もっとコード覚えて効率的な高見を目指したいところだけど脳がついていかない
2020/05/14(木) 23:30:25.59ID:Q92dSSfg
>>79
それで十分
それで十分
2020/05/14(木) 23:40:56.55ID:gToX6xvs
>>80
いや、流石にこれじゃいかんわ情けないと自覚
標準モジュールにあるプロシージャが自作のコードならまだしもマクロの記録を無駄な動きだけ消して貼り付けたりネットのをパクって少しいじったりするだけ
ユーザーフォームもコマンドボタン以外に使い方わからず使ってないし
CSVやtxtを読み込んだりとかそういう特殊な事書ける人は凄いわ
若い頃から情報システムとかそういう勉強すればよかったわ
英語 資格 PCスキルの時代は変わらんね
いや、流石にこれじゃいかんわ情けないと自覚
標準モジュールにあるプロシージャが自作のコードならまだしもマクロの記録を無駄な動きだけ消して貼り付けたりネットのをパクって少しいじったりするだけ
ユーザーフォームもコマンドボタン以外に使い方わからず使ってないし
CSVやtxtを読み込んだりとかそういう特殊な事書ける人は凄いわ
若い頃から情報システムとかそういう勉強すればよかったわ
英語 資格 PCスキルの時代は変わらんね
2020/05/14(木) 23:50:14.00ID:I7glJUMv
>>76>>77
ポーリングしてる機器Aの状態に応じて機器B、Cに異なるコマンドを送ってデータを取得する様な処理が何通りか合って多くなってます。インターフェースクラスとの間に処理クラスみたいなのを入れるのでしょうか
ポーリングしてる機器Aの状態に応じて機器B、Cに異なるコマンドを送ってデータを取得する様な処理が何通りか合って多くなってます。インターフェースクラスとの間に処理クラスみたいなのを入れるのでしょうか
2020/05/15(金) 00:17:59.54ID:qMmlu16O
2020/05/15(金) 00:41:48.57ID:ZviQyBFQ
>>81
今はボタン使うマクロしか作る予定がないだけだと思うが。
csvを使うマクロが必要になった時に調べるだろうし、
今は知らないからって自虐的になる必要ないんでは?
>>82
一般的にオブジェクト指向は「最終的にやらせたいこと(=やれること)」をメソッドとしてクラスに定義にして、
そのための条件や必要なデータなどはクラス自体が判断したり取得したりするか、引数として与える
もし、Getter等でデータをメインルーチンに集めて統合的に処理するなら従来の手続き型になる
今回の例で言えば、
機器BCからから受け取ったデータを処理するPublicメソッドを定義したクラスを作って
機器Aに応じて機器BCにコマンドを送ったりっていった処理は、そのクラス内でやるのがいいかも
今はボタン使うマクロしか作る予定がないだけだと思うが。
csvを使うマクロが必要になった時に調べるだろうし、
今は知らないからって自虐的になる必要ないんでは?
>>82
一般的にオブジェクト指向は「最終的にやらせたいこと(=やれること)」をメソッドとしてクラスに定義にして、
そのための条件や必要なデータなどはクラス自体が判断したり取得したりするか、引数として与える
もし、Getter等でデータをメインルーチンに集めて統合的に処理するなら従来の手続き型になる
今回の例で言えば、
機器BCからから受け取ったデータを処理するPublicメソッドを定義したクラスを作って
機器Aに応じて機器BCにコマンドを送ったりっていった処理は、そのクラス内でやるのがいいかも
85デフォルトの名無しさん
2020/05/15(金) 01:33:02.14ID:PClFYiSI ExcelフォームにExcelグリッドコントロールがあればむてきだたかもしれない
86デフォルトの名無しさん
2020/05/15(金) 01:38:53.47ID:BHVdwBuM 割り込みとかコールバックとかわからないシロートの発想で笑える
87デフォルトの名無しさん
2020/05/15(金) 01:42:44.01ID:h8nORdF5 >>84
CSVを扱う必要性がじりじり迫ってるんだけどネットにあるコードの窃盗常習犯で覚える脳みそがないからノースキル野郎
当然モチベもないから全然進んでない
@ダイアログで任意のCSVデータを選択して
それを今開いているシートに読み込まれる(CSVデータは読み込んだ後に自動で閉じる)
(元々シートにグラフがあるがそれはそのまま)
Aこのシートをブック内の一番右にシートをコピー
多分Aはどこかで拾えそうだけど@のプロシージャがありそうでなかなかネットから盗めず激ムズ
ここの勉強できる人達は勝ち組だよ
CSVを扱う必要性がじりじり迫ってるんだけどネットにあるコードの窃盗常習犯で覚える脳みそがないからノースキル野郎
当然モチベもないから全然進んでない
@ダイアログで任意のCSVデータを選択して
それを今開いているシートに読み込まれる(CSVデータは読み込んだ後に自動で閉じる)
(元々シートにグラフがあるがそれはそのまま)
Aこのシートをブック内の一番右にシートをコピー
多分Aはどこかで拾えそうだけど@のプロシージャがありそうでなかなかネットから盗めず激ムズ
ここの勉強できる人達は勝ち組だよ
2020/05/15(金) 02:20:59.50ID:+1dt40Gj
勝ち組かどうかは別問題だな
89デフォルトの名無しさん
2020/05/15(金) 09:02:28.91ID:uW7fixd9 非表示のシートがいくつかある状態で、一番右端のシートをアクティブにしたいのですが、worksheets.countで取得しようとすると、非表示のシートが選択されてしまいます
表示されているシートの一番右端をアクティブにするにはどうすればいいですか?
表示されているシートの一番右端をアクティブにするにはどうすればいいですか?
90デフォルトの名無しさん
2020/05/15(金) 09:32:08.17ID:uW7fixd9 質問がおかしかったので書き直します
マクロブックでなくアドインでやっています
一番右端のシートから値を取ってきて、その後に作成する新規のシートに貼り付けたいです
Sheets(WorkSheets.Count).Activateで、表示上の一番右端のシートをアクティブにすることはできるのですが、操作ができません
非表示のシートがいくつかあり、シート番号は若くてもそちらがWorkSheets.Countで選ばれているようで、値はそこから取ってきてしまっているみたいです
エクセルの表示上のシートの並びで、一番右端を選択してそこから値を取りたいのですが、どうすればいいでしょうか?
マクロブックでなくアドインでやっています
一番右端のシートから値を取ってきて、その後に作成する新規のシートに貼り付けたいです
Sheets(WorkSheets.Count).Activateで、表示上の一番右端のシートをアクティブにすることはできるのですが、操作ができません
非表示のシートがいくつかあり、シート番号は若くてもそちらがWorkSheets.Countで選ばれているようで、値はそこから取ってきてしまっているみたいです
エクセルの表示上のシートの並びで、一番右端を選択してそこから値を取りたいのですが、どうすればいいでしょうか?
2020/05/15(金) 09:38:25.85ID:/bb/ZDbJ
For i = Worksheets.Count To 1 Step - 1
If Worksheets(i).Visible Then
Worksheets(i).Activate
Exit For
End If
Next
If Worksheets(i).Visible Then
Worksheets(i).Activate
Exit For
End If
Next
92デフォルトの名無しさん
2020/05/15(金) 12:19:24.18ID:Ras8zr0W93デフォルトの名無しさん
2020/05/15(金) 12:51:25.51ID:wvzrJYUA シート1にラベルやタイトルや色を設定した
雛型になるグラフがあって
それをアクティブなシートにコピーして貼り付けられる事コード、もし出来れば教えて下さい。
今はシート1に戻ってグラフをコピーして
貼りたいシートに戻って貼り付け
をやってます
数値は反映させなくて雛形になるグラフをとにかくすぐにアクティブなシートに持ってきたいです
マクロの記録でもやり方わからずです…
シート1にある("グラフ1")というのを
アクティブなシートに貼り付け、わかりませぬ
雛型になるグラフがあって
それをアクティブなシートにコピーして貼り付けられる事コード、もし出来れば教えて下さい。
今はシート1に戻ってグラフをコピーして
貼りたいシートに戻って貼り付け
をやってます
数値は反映させなくて雛形になるグラフをとにかくすぐにアクティブなシートに持ってきたいです
マクロの記録でもやり方わからずです…
シート1にある("グラフ1")というのを
アクティブなシートに貼り付け、わかりませぬ
2020/05/15(金) 13:03:29.53ID:ChXNP+/8
Ruby なんか、こういう感じで、CSV ファイルを1行ずつ処理していくだけ。
GUI で処理すると、Rubyよりも何倍も難しい
require 'csv'
file_path = ARGV[ 0 ]
# 引数には、ファイルパスを渡す。input.csv
# CSV ファイルを、1行ずつ処理する
CSV.foreach( file_path ) do |row|
puts "#{ row[ "col_1" ] } : #{ row[ "col_2" ] }" # 列1・列2
end
GUI で処理すると、Rubyよりも何倍も難しい
require 'csv'
file_path = ARGV[ 0 ]
# 引数には、ファイルパスを渡す。input.csv
# CSV ファイルを、1行ずつ処理する
CSV.foreach( file_path ) do |row|
puts "#{ row[ "col_1" ] } : #{ row[ "col_2" ] }" # 列1・列2
end
95デフォルトの名無しさん
2020/05/15(金) 17:00:34.32ID:WgI7x3A0 シート1にあるグラフ1をアクティブシートにコピペ
調べてみたところ結局俺がやりたいのはシンプルにこれか
マクロの記録だと限界あるわ。
調べてみたところ結局俺がやりたいのはシンプルにこれか
マクロの記録だと限界あるわ。
96デフォルトの名無しさん
2020/05/15(金) 19:22:44.18ID:h8nORdF5 Sub 数値反転()
Dim ms As VbMsgBoxResult
Dim gg As Long
ms = MsgBox("マイナス値?", vbYesNo, "B列C列を確認")
If ms = vbYes Then
gg = 113
Do While Cells(gg, 2) <> ""
Cells(gg, 17) = Cells(gg, 2) * -1
Cells(gg, 18) = Cells(gg, 3) * -1
gg = gg + 1
Else
Do While Cells(gg, 2) <> ""
Cells(gg, 17) = Cells(gg, 2)
Cells(gg, 18) = Cells(gg, 3)
gg = gg + 1
Loop
End If
End Sub
ドヤ顔でいけるだろと思ったらnoを選択するとElseの次のDo whileのところでエラーになりますけどどう手直ししたらいいですか
Dim ms As VbMsgBoxResult
Dim gg As Long
ms = MsgBox("マイナス値?", vbYesNo, "B列C列を確認")
If ms = vbYes Then
gg = 113
Do While Cells(gg, 2) <> ""
Cells(gg, 17) = Cells(gg, 2) * -1
Cells(gg, 18) = Cells(gg, 3) * -1
gg = gg + 1
Else
Do While Cells(gg, 2) <> ""
Cells(gg, 17) = Cells(gg, 2)
Cells(gg, 18) = Cells(gg, 3)
gg = gg + 1
Loop
End If
End Sub
ドヤ顔でいけるだろと思ったらnoを選択するとElseの次のDo whileのところでエラーになりますけどどう手直ししたらいいですか
2020/05/15(金) 19:26:11.81ID:B9XmHC3V
>>96
vbNoのとき、ggはいくつ?
vbNoのとき、ggはいくつ?
98デフォルトの名無しさん
2020/05/15(金) 19:30:22.00ID:h8nORdF52020/05/15(金) 19:39:43.78ID:RYV/7Uuu
1つめの Do while に対応する Loop がない
100デフォルトの名無しさん
2020/05/15(金) 19:49:26.82ID:h8nORdF5 >>99
ほんと恥ずかしすぎるミスでした。
ありがとうございます。
間違っといてなんだけど自分の考え方が間違ってない事もわかってホッとしました。
何言ってんだこいつと思われて当然ですがそんな気持ちです
ほんと恥ずかしすぎるミスでした。
ありがとうございます。
間違っといてなんだけど自分の考え方が間違ってない事もわかってホッとしました。
何言ってんだこいつと思われて当然ですがそんな気持ちです
101デフォルトの名無しさん
2020/05/15(金) 20:01:55.19ID:BHVdwBuM >>100
そもそもそれ以前に馬鹿過ぎて話にならない
そもそもそれ以前に馬鹿過ぎて話にならない
102デフォルトの名無しさん
2020/05/15(金) 20:42:05.52ID:SPdgeRtp インデントで分かったりしないもんかね
103デフォルトの名無しさん
2020/05/15(金) 20:58:58.45ID:Syu0A9me VSのエディタなら勝手にやってくれるけどExcelVBEはそこまで親切じゃないから、
・Doと書いたら、中間の処理書く前にLoopをセットで先に書く。
・中間の処理はインデント付ける
こうしないと長い処理だとミスる。
・Doと書いたら、中間の処理書く前にLoopをセットで先に書く。
・中間の処理はインデント付ける
こうしないと長い処理だとミスる。
104デフォルトの名無しさん
2020/05/15(金) 21:24:59.09ID:1l79UUQc 田中先生ユーチューバーになってたんか。
エクセル系ユーチューバーは前からいるけど
彼らのチャンネル登録者数どんどん抜いてくな。
マクロ以外にもエクセルの機能全般もアップしてるし
他のエクセルユーチューバ―はもう躍進することはないな。
ご愁傷さま。
エクセル系ユーチューバーは前からいるけど
彼らのチャンネル登録者数どんどん抜いてくな。
マクロ以外にもエクセルの機能全般もアップしてるし
他のエクセルユーチューバ―はもう躍進することはないな。
ご愁傷さま。
105デフォルトの名無しさん
2020/05/15(金) 21:26:28.78ID:xUEF26i7 インデントしてるとVBEが勝手に空行にもインデント用スペースいれやがる
106デフォルトの名無しさん
2020/05/15(金) 22:51:12.17ID:B9PySqRq マクロの処理だけmsオーダーで止めて、シートでの作業には影響させない方法ってありますか?
sleepやapplication.waitを使うと、止めている間はマウスポインタが待機中に切り替わって気が散ります。
sleepやapplication.waitを使うと、止めている間はマウスポインタが待機中に切り替わって気が散ります。
107デフォルトの名無しさん
2020/05/15(金) 23:02:13.60ID:RYV/7Uuu 意味が解らん
108デフォルトの名無しさん
2020/05/15(金) 23:07:56.71ID:b6XlKvF2 DoEvents を定期的に入れてあげて妥協するのがいいのでは
109デフォルトの名無しさん
2020/05/16(土) 00:10:47.87ID:DWLUsoam 気が散るほうが悪い
110デフォルトの名無しさん
2020/05/16(土) 00:24:20.49ID:dnsCYCpT waitが長いと入力作業とかできんだろうな
マルチスレッドできたっけ?
マルチスレッドできたっけ?
111デフォルトの名無しさん
2020/05/16(土) 00:27:49.65ID:PCcdgCy6112デフォルトの名無しさん
2020/05/16(土) 00:41:23.65ID:W7xr4LsN 馬鹿は全角英文字、自分勝手な略語を使う法則
113デフォルトの名無しさん
2020/05/16(土) 02:12:04.53ID:PXYVKn+N 非表示にすれば気にならないとか?
114デフォルトの名無しさん
2020/05/16(土) 02:34:42.15ID:LVL/9uGV msオーダーって何?
115デフォルトの名無しさん
2020/05/16(土) 05:07:24.47ID:VHZcBZeD マイクロ秒で処理するってことかな?
116デフォルトの名無しさん
2020/05/16(土) 08:49:36.47ID:mgXvg9qv あーミリ秒指定でマクロを止めたいってことか?
それでもまだわからん
それでもまだわからん
117デフォルトの名無しさん
2020/05/16(土) 09:59:53.95ID:Tk5Omr1n せめてmsecオーダーと書けばわかりやすいのに
しかも100ミリとかじゃないか?数ミリは気づかないはず
GetInputStateとDoEventsでどうにかできんか
しかも100ミリとかじゃないか?数ミリは気づかないはず
GetInputStateとDoEventsでどうにかできんか
118デフォルトの名無しさん
2020/05/17(日) 13:30:28.43ID:qdHuVgcd119デフォルトの名無しさん
2020/05/17(日) 13:48:57.86ID:LkRZ0WP+ [現象]
excelの vbaエディタで、フォントの設定が出来なくなった。
ツール−オプション−エディタの設定を選択すると、excelが強制終了してしまう。
[環境]
windows10 pro
office personal 2019
[発生時の操作]
エディタの設定を、MSpゴシックから、 Ricty Diminished(Ricty Diminished Discordだったかも)
に変更した直後から発生するようになった。
http://blog.higty.xyz/post/vbe-setting-error/
https://www.moug.net/tech/exvba/0150130.html
ここを見ましたが、レジストリキー:HKEY_CURRENT_USER\Software\Microsoft\VBA\7.1\Common が存在しません。
よろしくお願いします
excelの vbaエディタで、フォントの設定が出来なくなった。
ツール−オプション−エディタの設定を選択すると、excelが強制終了してしまう。
[環境]
windows10 pro
office personal 2019
[発生時の操作]
エディタの設定を、MSpゴシックから、 Ricty Diminished(Ricty Diminished Discordだったかも)
に変更した直後から発生するようになった。
http://blog.higty.xyz/post/vbe-setting-error/
https://www.moug.net/tech/exvba/0150130.html
ここを見ましたが、レジストリキー:HKEY_CURRENT_USER\Software\Microsoft\VBA\7.1\Common が存在しません。
よろしくお願いします
120デフォルトの名無しさん
2020/05/17(日) 14:05:50.89ID:dvSHUyYR >>119
死ね
死ね
121デフォルトの名無しさん
2020/05/17(日) 14:06:13.48ID:GAbG2JNM >>119
ワークシートのページレイアウトからテーマは変更できる?
ワークシートのページレイアウトからテーマは変更できる?
122デフォルトの名無しさん
2020/05/17(日) 14:11:19.59ID:oJIHh9Jk >>120
この馬鹿モンが
この馬鹿モンが
123デフォルトの名無しさん
2020/05/17(日) 14:12:58.27ID:oJIHh9Jk >>121
はいできますがそれでは解決しないのです
はいできますがそれでは解決しないのです
124デフォルトの名無しさん
2020/05/17(日) 14:21:32.25ID:GAbG2JNM >>123
まずレジストリのVBA\7.1\Commonが存在しないことが異常だから、Excelを再インストールするのが一番の早道な気がする
まずレジストリのVBA\7.1\Commonが存在しないことが異常だから、Excelを再インストールするのが一番の早道な気がする
125sage
2020/05/17(日) 14:31:40.69ID:LkRZ0WP+127デフォルトの名無しさん
2020/05/17(日) 15:10:42.19ID:IJ/C56sM128デフォルトの名無しさん
2020/05/17(日) 16:08:33.48ID:Rv0pB+iF インストロールと言ったら怒られたナリみたいなもんか。
129デフォルトの名無しさん
2020/05/17(日) 16:57:48.19ID:lqCZHYYc 奇天烈大百科が巻物だったら、まさしくインストロールだぞ
130デフォルトの名無しさん
2020/05/17(日) 17:38:29.95ID:Rv0pB+iF 奇天烈大百科が巻物だったら、まさしくインストロールだぞ
↓
If the eccentric encyclopedia is a scroll, it's just an installation.
↓
風変わりな百科事典が巻物なら、それは単なるインスタレーションです。
意味がさっぱり分からなかったので、Google翻訳かけてみたら、意味が分かるようになったぞ。
↓
If the eccentric encyclopedia is a scroll, it's just an installation.
↓
風変わりな百科事典が巻物なら、それは単なるインスタレーションです。
意味がさっぱり分からなかったので、Google翻訳かけてみたら、意味が分かるようになったぞ。
131デフォルトの名無しさん
2020/05/17(日) 18:09:25.04ID:/J9Aoh2W 英語の方が簡単なんだよ
早くそれに気づけ
早くそれに気づけ
132デフォルトの名無しさん
2020/05/17(日) 21:52:01.62ID:FPkLjraN textboxの値チェックがうまく行きません。20~100までの範囲を入れたいのでchangeイベントで値がこの範囲か監視してます。
100を超えていたら100に、20を下回ると20になる様にリミッタを付けました。
すると100にした後にキーボード操作で30にしようとすると、0を消した時点で強制的に20になり、そこから何か押すと100になってしまいます。
どうすれば上手くいくのでしょうか。
100を超えていたら100に、20を下回ると20になる様にリミッタを付けました。
すると100にした後にキーボード操作で30にしようとすると、0を消した時点で強制的に20になり、そこから何か押すと100になってしまいます。
どうすれば上手くいくのでしょうか。
133デフォルトの名無しさん
2020/05/17(日) 22:01:56.66ID:GAbG2JNM >>132
そういう時はスピンボタンを使った方がいいよ
そういう時はスピンボタンを使った方がいいよ
134デフォルトの名無しさん
2020/05/17(日) 22:08:25.62ID:dvSHUyYR 馬鹿はWindowsのUIもわからず自分勝手なインターフェースを作る法則
135デフォルトの名無しさん
2020/05/17(日) 23:08:18.21ID:eOQVNdAF >>132
Exitイベントを使う
Exitイベントを使う
136デフォルトの名無しさん
2020/05/17(日) 23:21:22.78ID:vwApF1ba 大学で学ぶ物理を板書1枚にまとめてみた
https://www.youtube.com/watch?v=naBcXoq4aOI
物理の研究分野を板書1枚にまとめてみた
https://www.youtube.com/watch?v=4W-pWuXUaZQ
理学部と工学部の違いとは?
https://www.youtube.com/watch?v=eJH4nKU6mJA&t=80s
大学と大学院の違い
https://www.youtube.com/watch?v=xBKAEvTegN8
高校と大学の積分は決定的に違う?微分積分学の基本定理は実はすごい!
https://www.youtube.com/watch?v=V9i_zlbssbs&t=475s
数学にはどんな研究分野がある?数学の世界地図を一枚に描いて紹介してみた!
https://www.youtube.com/watch?v=fK_JGVti5y8
https://www.youtube.com/watch?v=naBcXoq4aOI
物理の研究分野を板書1枚にまとめてみた
https://www.youtube.com/watch?v=4W-pWuXUaZQ
理学部と工学部の違いとは?
https://www.youtube.com/watch?v=eJH4nKU6mJA&t=80s
大学と大学院の違い
https://www.youtube.com/watch?v=xBKAEvTegN8
高校と大学の積分は決定的に違う?微分積分学の基本定理は実はすごい!
https://www.youtube.com/watch?v=V9i_zlbssbs&t=475s
数学にはどんな研究分野がある?数学の世界地図を一枚に描いて紹介してみた!
https://www.youtube.com/watch?v=fK_JGVti5y8
137デフォルトの名無しさん
2020/05/17(日) 23:30:26.45ID:oJIHh9Jk138デフォルトの名無しさん
2020/05/17(日) 23:46:16.64ID:FPkLjraN139デフォルトの名無しさん
2020/05/18(月) 20:11:09.72ID:W41e55Iy ちょっと息抜きにセルや文字の色をVBAでやろうと思ったら大きく二通りあるんだね
カラープロパティとRGB関数
どっちで覚えるのが王道?
カラープロパティとRGB関数
どっちで覚えるのが王道?
140デフォルトの名無しさん
2020/05/18(月) 20:20:02.29ID:W41e55Iy いや違うか
そんなに普段カラフルに使わないならカラーインデックス
細かく覚えて使いたいならカラープロパティかRGBってとこか
うーん前者かな
そんなに普段カラフルに使わないならカラーインデックス
細かく覚えて使いたいならカラープロパティかRGBってとこか
うーん前者かな
141デフォルトの名無しさん
2020/05/18(月) 20:31:02.10ID:yqkonDmK142デフォルトの名無しさん
2020/05/18(月) 20:37:00.50ID:W41e55Iy143デフォルトの名無しさん
2020/05/18(月) 20:57:41.87ID:ZYPN6nu1 >>142
インデックス色はカラーパレットの位置に設定してある色だから環境によっては色が変わるよ
インデックス色はカラーパレットの位置に設定してある色だから環境によっては色が変わるよ
144デフォルトの名無しさん
2020/05/18(月) 21:11:42.05ID:W41e55Iy ほんと勉強になりますわ
最初は0と255の組み合わせだけでRGB関数で覚えちゃうようにしますわ
この8種類くらいしか多分使わないかな
最初は0と255の組み合わせだけでRGB関数で覚えちゃうようにしますわ
この8種類くらいしか多分使わないかな
145デフォルトの名無しさん
2020/05/18(月) 22:21:45.09ID:MHLvuQaE どういう時どれを使うのが適しているかで選ぶのであって、どっちで覚えるとかじゃない
146デフォルトの名無しさん
2020/05/18(月) 22:29:22.00ID:1EfbZi6v >>145
社内のマクロツールの中味たまに見るけどなんとなく、どっちかに統一してるって感じの人が多くない?
社内のマクロツールの中味たまに見るけどなんとなく、どっちかに統一してるって感じの人が多くない?
147デフォルトの名無しさん
2020/05/18(月) 22:32:29.74ID:MHLvuQaE どっちでもいいんであれば好きに統一すればいいんじゃね
148デフォルトの名無しさん
2020/05/18(月) 22:39:17.66ID:W41e55Iy たかが色だと思って使わないと思ってたけど
メッセージボックスで黄色い部分の数値を確認後、入力とかで
その範囲を真っ黄色にしてやって元に戻したり
他人、(おばちゃん)とかにはとにかくわかりやすく作るようにしてみることにした
メッセージボックスで黄色い部分の数値を確認後、入力とかで
その範囲を真っ黄色にしてやって元に戻したり
他人、(おばちゃん)とかにはとにかくわかりやすく作るようにしてみることにした
149デフォルトの名無しさん
2020/05/19(火) 05:32:55.42ID:MuDspthZ rgb値の組み合わせを覚えるのは大変なのでWebColor名で覚えるといいかも。
rgbAliceBlue
rgbLightBlue
rgbBlue
rgbMidnightBlue
みたいな感じで記述すればrgb値を指定できる。よく使うやつだけ覚えとけばいい。
rgbAliceBlue
rgbLightBlue
rgbBlue
rgbMidnightBlue
みたいな感じで記述すればrgb値を指定できる。よく使うやつだけ覚えとけばいい。
150デフォルトの名無しさん
2020/05/19(火) 07:27:37.05ID:oLWOmWCd vbRed 「・・・。」
vbGreen 「・・・。」
vbBlue 「・・・。」
vbGreen 「・・・。」
vbBlue 「・・・。」
151デフォルトの名無しさん
2020/05/19(火) 07:31:04.28ID:FCPlMZOp >「・・・。」
あーウゼー
あーウゼー
152デフォルトの名無しさん
2020/05/19(火) 08:30:30.69ID:D2gK0p2V あーおれも、基本はそのvb〜だ
グラデーション的な見栄えが必要の時とかは変えるけど
グラデーション的な見栄えが必要の時とかは変えるけど
153デフォルトの名無しさん
2020/05/19(火) 17:47:57.55ID:J9ZEMPxu アクティブシートをコピーした後のコードがムズいなぁ
細かい所をいじる知識がなさすぎ
細かい所をいじる知識がなさすぎ
154デフォルトの名無しさん
2020/05/19(火) 18:07:59.71ID:uEHEf6fZ 逆に原紙を作っておいて普段はそのコピーを使うようにするといい
155デフォルトの名無しさん
2020/05/19(火) 18:17:23.12ID:J9ZEMPxu >>154
ありがとう。その方が都合そうしたよ。
シート名の取得も特定のセルから何とかできた。あとはブック名を指示したいんだけど調べりゃすぐ出てきそうだけどなかなか出て来ないわ
エラー出ないように細かく作りたいもんだけ
ありがとう。その方が都合そうしたよ。
シート名の取得も特定のセルから何とかできた。あとはブック名を指示したいんだけど調べりゃすぐ出てきそうだけどなかなか出て来ないわ
エラー出ないように細かく作りたいもんだけ
156デフォルトの名無しさん
2020/05/19(火) 19:19:11.33ID:qQEEjoZO 10万円給付の紐付けなんかVBAで余裕に出来るのに話題にならないのが不思議
157デフォルトの名無しさん
2020/05/19(火) 19:48:13.64ID:NEFcECdd >>156
こういう馬鹿が職場にいて余計混乱させているだけだろ
こういう馬鹿が職場にいて余計混乱させているだけだろ
158デフォルトの名無しさん
2020/05/19(火) 20:27:14.48ID:F1sOO54s そのうち消えた10万円とかなるんじゃね
159デフォルトの名無しさん
2020/05/19(火) 20:56:41.62ID:FccdSYLU クルーズ船の消えた弁当
160デフォルトの名無しさん
2020/05/19(火) 21:22:42.73ID:oItI0x3V 絶対にわからん関数ばかり使ってる理解不明なコードをネットからパクって少し弄ったら完全に業務で対応できてラッキー
そこから今日もユーザーフォーム適当に作ってメッセージボックスとインプットボックスを組んでいって
効率化したけど相変わらず上達せん毎日だわ
そこから今日もユーザーフォーム適当に作ってメッセージボックスとインプットボックスを組んでいって
効率化したけど相変わらず上達せん毎日だわ
161デフォルトの名無しさん
2020/05/19(火) 21:40:57.51ID:OdQysc5C ここは日記帳ではない
162デフォルトの名無しさん
2020/05/19(火) 22:33:25.66ID:flKz052u163デフォルトの名無しさん
2020/05/19(火) 23:58:06.20ID:dbsigt0d 相談させてください。
羅列されたデータにオートフィルタをかけて、その中でのランダム選択をシートを使わないでやる方法が知りたいです。
A列(1〜6年)、B列(1〜8組)、C列(名前)
みたいな感じで、AとBから複数選択後にCから選び出す感じです。
今までは作業用のシートを設けてオートフィルタをかけたものを別シートにコピーし、その中でrandomで選んでいました。
諸事情により作業用シートが作れないので、おそらく配列内だとは思うのですが・・・・
羅列されたデータにオートフィルタをかけて、その中でのランダム選択をシートを使わないでやる方法が知りたいです。
A列(1〜6年)、B列(1〜8組)、C列(名前)
みたいな感じで、AとBから複数選択後にCから選び出す感じです。
今までは作業用のシートを設けてオートフィルタをかけたものを別シートにコピーし、その中でrandomで選んでいました。
諸事情により作業用シートが作れないので、おそらく配列内だとは思うのですが・・・・
164デフォルトの名無しさん
2020/05/20(水) 00:07:04.62ID:vp7gkhOL >>163
VBAなら、とりあえず乱数を発生して、その行がオートフィルタかかってたらもう一度乱数からやり直せばいいだけ
VBAなら、とりあえず乱数を発生して、その行がオートフィルタかかってたらもう一度乱数からやり直せばいいだけ
165デフォルトの名無しさん
2020/05/20(水) 01:09:15.99ID:0kv4kFzW 俺なら配列に入れてからやる
166デフォルトの名無しさん
2020/05/20(水) 02:23:38.33ID:p47zFM4b >>163
フィルタ掛けた結果をROWだけ配列に抜き出して、乱数で配列の中から一つ選べばいいんじゃね
フィルタ掛けた結果をROWだけ配列に抜き出して、乱数で配列の中から一つ選べばいいんじゃね
167163
2020/05/20(水) 06:43:20.78ID:98prku9b168デフォルトの名無しさん
2020/05/20(水) 07:03:34.54ID:skRckF1R ランダム選択が目的なら、そもそも、オートフィルターにこだわる必要あるのかな?
VBA使うなら、オートフィルターを扱うのは微妙に面倒だから、自前でフィルターすればいいと思うぞ
VBA使うなら、オートフィルターを扱うのは微妙に面倒だから、自前でフィルターすればいいと思うぞ
169デフォルトの名無しさん
2020/05/20(水) 08:27:34.61ID:DAK+DifG オートフィルタやオートフィルタ的コードは使わない
VBAのみで
乱数生成は一度きり
3桁の乱数 a を生成する
まず a を6で割って余りが0〜5まででるんで
0が出たら6年
1が出たら1年
2が出たら2年
3が出たら3年
4が出たら4年
5が出たら5年
とする
例えばここで2が出て2年が選択されたら
さっきの乱数 a をまた使って、組数で割って余りを求める
んで同じようにして
今度は選択された組の人数で割って個人に割り当てられた番号でを特定する
これを繰り返して複数人を選んでいく
選ぶ過程で同じ学年はダメとかあるなら
上の例で言えば一旦2が出たら次は2を排除するとか
繰り返し文の中で if 使って条件つけていく
学年の数、組の数、クラス人数は予めシートに表にしておくこと
とかとか
VBAのみで
乱数生成は一度きり
3桁の乱数 a を生成する
まず a を6で割って余りが0〜5まででるんで
0が出たら6年
1が出たら1年
2が出たら2年
3が出たら3年
4が出たら4年
5が出たら5年
とする
例えばここで2が出て2年が選択されたら
さっきの乱数 a をまた使って、組数で割って余りを求める
んで同じようにして
今度は選択された組の人数で割って個人に割り当てられた番号でを特定する
これを繰り返して複数人を選んでいく
選ぶ過程で同じ学年はダメとかあるなら
上の例で言えば一旦2が出たら次は2を排除するとか
繰り返し文の中で if 使って条件つけていく
学年の数、組の数、クラス人数は予めシートに表にしておくこと
とかとか
170デフォルトの名無しさん
2020/05/20(水) 08:28:13.58ID:DAK+DifG 一度きりってのは1人選ぶのに一度ってことでしゅ
171デフォルトの名無しさん
2020/05/20(水) 08:30:51.03ID:DAK+DifG 6学年あって6組の学年があったりするとだめか
階層が下がるごとに乱数生成してもいいのかね
階層が下がるごとに乱数生成してもいいのかね
172デフォルトの名無しさん
2020/05/20(水) 09:26:22.31ID:CH9LsvxQ 何年何組は決めておいてから誰にするかを乱数?
173デフォルトの名無しさん
2020/05/20(水) 09:45:48.33ID:B3VzH1xh A1からオートフィルターをかけて
もし、変数aが空欄でなければ、B列で変数aと同じ値だけにしぼる
もし、変数bが空欄でなければ、C列で変数bと同じ値だけにしぼる
もし、変数cが空欄でなければ、D列で変数cと同じ値だけにしぼる
というような書き方をおしえてください
もし、変数aが空欄でなければ、B列で変数aと同じ値だけにしぼる
もし、変数bが空欄でなければ、C列で変数bと同じ値だけにしぼる
もし、変数cが空欄でなければ、D列で変数cと同じ値だけにしぼる
というような書き方をおしえてください
174デフォルトの名無しさん
2020/05/20(水) 11:11:47.07ID:nPhD6zxk >>163
Dim r As Range
Dim n As Long
Dim i As Long
With Range("A1").CurrentRegion
With .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
n = 0
For Each r In .Rows
n = n + 1
Next
if n = 0 then
exit sub
end if
n = 1以上n以下の乱数
i = 1
For Each r In .Rows
If i = n Then
rを使ってなにかする
Exit Sub
End If
i = i + 1
Next
End With
End With
Dim r As Range
Dim n As Long
Dim i As Long
With Range("A1").CurrentRegion
With .Offset(1, 0).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
n = 0
For Each r In .Rows
n = n + 1
Next
if n = 0 then
exit sub
end if
n = 1以上n以下の乱数
i = 1
For Each r In .Rows
If i = n Then
rを使ってなにかする
Exit Sub
End If
i = i + 1
Next
End With
End With
175デフォルトの名無しさん
2020/05/20(水) 11:23:14.33ID:qcti6JCq >>173
まず意味が不明 →「変数aが空欄」
よくわかんないけど、
特定の表について、
VBA上で宣言した変数ごとに対応した列をフィルタする簡単なものなら書いてみた。
「空欄」の意味が不明なので、NULLか空文字か、それともセルのことだったのか、
そういうことも質問時に気にするように。
https://i.imgur.com/wNuWmnl.png
まず意味が不明 →「変数aが空欄」
よくわかんないけど、
特定の表について、
VBA上で宣言した変数ごとに対応した列をフィルタする簡単なものなら書いてみた。
「空欄」の意味が不明なので、NULLか空文字か、それともセルのことだったのか、
そういうことも質問時に気にするように。
https://i.imgur.com/wNuWmnl.png
177デフォルトの名無しさん
2020/05/20(水) 15:56:33.77ID:a9xbkMkn 余談だがグループの中から1人をランダムで選ぶ場合、
同じことを繰り返すと同じ人が選ばれる可能性がでてくる
それを無くしたい場合はシャッフルしてから順番に選ぶといい
同じことを繰り返すと同じ人が選ばれる可能性がでてくる
それを無くしたい場合はシャッフルしてから順番に選ぶといい
178デフォルトの名無しさん
2020/05/20(水) 17:56:09.89ID:IoSOKpcA 何かをさせるときに一度リセットする的なアレですね。
プロージャくっつけて作ってる初心者だが何となくその感覚
スマホとPCのデータが両方消えて
前スレで乱数の発生教えてくれた人のコードが見れなくなったが、やべえ
プロージャくっつけて作ってる初心者だが何となくその感覚
スマホとPCのデータが両方消えて
前スレで乱数の発生教えてくれた人のコードが見れなくなったが、やべえ
179デフォルトの名無しさん
2020/05/20(水) 18:10:15.58ID:bnGR2vkC いや選ばれる人の立場になると、
俺前回やったのにまた俺?他の選ばれてない人はズルくね?みたいな
俺前回やったのにまた俺?他の選ばれてない人はズルくね?みたいな
180デフォルトの名無しさん
2020/05/20(水) 22:38:53.36ID:cJtMR3HM 前スレの教えてくれた恩人のコードやっと見つけたあああああ
Sub 乱数発生させる()
For 項目 = 1 To 6 '項目数を変更
列 = 項目 + 2
最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
幅 = 最大 - 最小
For サンプル = 1 To 25 'サンプル数
行 = サンプル + 5
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
End If
Next
Next
End Sub
これがC6がサンプル1の項目1が始まりになるシートで使えてるんだけど
これをC12からとかに変えるにはどこ弄ればいいですか?
誰かコメントをこれに添えてもらえませんか…
前スレの大恩人に救われたコードを更に流用したいです
Sub 乱数発生させる()
For 項目 = 1 To 6 '項目数を変更
列 = 項目 + 2
最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
幅 = 最大 - 最小
For サンプル = 1 To 25 'サンプル数
行 = サンプル + 5
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
End If
Next
Next
End Sub
これがC6がサンプル1の項目1が始まりになるシートで使えてるんだけど
これをC12からとかに変えるにはどこ弄ればいいですか?
誰かコメントをこれに添えてもらえませんか…
前スレの大恩人に救われたコードを更に流用したいです
181デフォルトの名無しさん
2020/05/20(水) 23:01:11.08ID:cJtMR3HM Sub 乱数発生させる()
For 項目 = 1 To 20 '項目数を変更
列 = 項目 +
最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
幅 = 最大 - 最小
For サンプル = 1 To 25 'サンプル数
行 = サンプル + 11
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
End If
Next
Next
End Sub
項目数を20に変えてC12セルから入力させたいんだけどWorksheetfunctionのとこの6と30も変えないとダメですかねこれ
乱数が狂うのかなぁ
For 項目 = 1 To 20 '項目数を変更
列 = 項目 +
最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
幅 = 最大 - 最小
For サンプル = 1 To 25 'サンプル数
行 = サンプル + 11
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
End If
Next
Next
End Sub
項目数を20に変えてC12セルから入力させたいんだけどWorksheetfunctionのとこの6と30も変えないとダメですかねこれ
乱数が狂うのかなぁ
182デフォルトの名無しさん
2020/05/20(水) 23:30:59.51ID:c0Xo7Xk6 自分で考えることもしない厚かましい馬鹿は消えろ
183デフォルトの名無しさん
2020/05/20(水) 23:45:16.86ID:cJtMR3HM Sub 乱数発生させる()
For 項目 = 1 To 20 '項目数を変更
列 = 項目 +
最小 = WorksheetFunction.Min(Cells(12, 列).Resize(36))
最大 = WorksheetFunction.Max(Cells(12, 列).Resize(36))
幅 = 最大 - 最小
For サンプル = 1 To 25 'サンプル数
行 = サンプル + 11
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
End If
Next
Next
End Sub
考えたけどこれかなぁ
他ののまっさらなシートだと乱数再現できた
けど反映させたいシートだと乱数が狂う
配置も数値も同じなのに
シートの設定かぁ
For 項目 = 1 To 20 '項目数を変更
列 = 項目 +
最小 = WorksheetFunction.Min(Cells(12, 列).Resize(36))
最大 = WorksheetFunction.Max(Cells(12, 列).Resize(36))
幅 = 最大 - 最小
For サンプル = 1 To 25 'サンプル数
行 = サンプル + 11
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
End If
Next
Next
End Sub
考えたけどこれかなぁ
他ののまっさらなシートだと乱数再現できた
けど反映させたいシートだと乱数が狂う
配置も数値も同じなのに
シートの設定かぁ
184デフォルトの名無しさん
2020/05/20(水) 23:49:11.96ID:Khp9j2eL 数千行〜数万行のデータが格納されてるシートで、
ある特定の範囲で最大文字数を取得するには
配列関数で{Max(Len(A1:A10))}とすれば良いですが(VBA上でEvaluateを用いて実装してます)、その最大文字数があるセルの場所(行番号)を特定する方法はありますか?
最大文字数のセルが複数ある場合はその全てのセルの行番号を取得したいです
最終的に、範囲内の最大文字数のセルの背景色を変えたいのが目的です
ある特定の範囲で最大文字数を取得するには
配列関数で{Max(Len(A1:A10))}とすれば良いですが(VBA上でEvaluateを用いて実装してます)、その最大文字数があるセルの場所(行番号)を特定する方法はありますか?
最大文字数のセルが複数ある場合はその全てのセルの行番号を取得したいです
最終的に、範囲内の最大文字数のセルの背景色を変えたいのが目的です
185デフォルトの名無しさん
2020/05/21(木) 00:19:06.01ID:OWznaKXu >>184
セルの文字数がその最大文字数と同じなら色変えるっていう条件付き書式を設定する
セルの文字数がその最大文字数と同じなら色変えるっていう条件付き書式を設定する
186デフォルトの名無しさん
2020/05/21(木) 00:48:50.73ID:V79mjqtT187デフォルトの名無しさん
2020/05/21(木) 01:01:13.95ID:eV6pHfb6 わかった。
けどもう後には引けんほど次元の高い事やらせてて手に負えないわ
けどもう後には引けんほど次元の高い事やらせてて手に負えないわ
188デフォルトの名無しさん
2020/05/21(木) 03:10:09.62ID:u8xoMicA 気づくの遅すぎ
189デフォルトの名無しさん
2020/05/21(木) 06:58:06.98ID:Qgph+4Ei フォームのラベルに計算結果を表示について。
結果がプラスならそのまま、マイナスなら赤字にマイナス記号を付けるにはどうしたらいいですか?
例
350
-350←赤字
結果がプラスならそのまま、マイナスなら赤字にマイナス記号を付けるにはどうしたらいいですか?
例
350
-350←赤字
190デフォルトの名無しさん
2020/05/21(木) 07:11:40.31ID:uDeLtUtB >>183
セル範囲の内容で乱数の範囲が設定されているからデータが入力されていないと乱数にならないのに、
そこにデータが入力されていると値が更新されない
なかなかのジレンマだね
余談だけど、直感的にわかりにくいから、ループカウンタは列と行そのものにした方がいいと思うぞ
あと、項目数と基準セルを変えたいなら、それを変数にして、こんな感じ
項目数 = 20
サンプル数 = 25
行0 = Range("C12").Row
列0 = Range("C12").Column
For 列 = 列0 To 列0 + 項目数 - 1
...以降も上記変数で置き換える
セル範囲の内容で乱数の範囲が設定されているからデータが入力されていないと乱数にならないのに、
そこにデータが入力されていると値が更新されない
なかなかのジレンマだね
余談だけど、直感的にわかりにくいから、ループカウンタは列と行そのものにした方がいいと思うぞ
あと、項目数と基準セルを変えたいなら、それを変数にして、こんな感じ
項目数 = 20
サンプル数 = 25
行0 = Range("C12").Row
列0 = Range("C12").Column
For 列 = 列0 To 列0 + 項目数 - 1
...以降も上記変数で置き換える
191デフォルトの名無しさん
2020/05/21(木) 08:07:12.30ID:Sgq4UdRX192デフォルトの名無しさん
2020/05/21(木) 12:39:59.39ID:VB42BHka >>190
それとこのコード見てさらっとそうやって理解できるってやっぱすごいね
仰るとおり今記入してある数値はそのまま
で残りその数値を元に乱数で埋めるというのを
前スレの人が教えてくれた
みんな凄いの一言
それとこのコード見てさらっとそうやって理解できるってやっぱすごいね
仰るとおり今記入してある数値はそのまま
で残りその数値を元に乱数で埋めるというのを
前スレの人が教えてくれた
みんな凄いの一言
193デフォルトの名無しさん
2020/05/21(木) 12:46:28.85ID:/CAIZx5s 日本語よりはるかに簡単
194デフォルトの名無しさん
2020/05/21(木) 18:17:58.90ID:uS9Lfycl パワークエリでデータモデルに読み込んだ後ファイル移動等して元ファイルを参照できない状態からデータをシートに書き出したいのですがvbaで出来ますか?
手動では既存の接続からテーブルとして書き出せるのですがマクロ化するとクエリの更新処理でパスが見つかりませんというエラーになります
手動では既存の接続からテーブルとして書き出せるのですがマクロ化するとクエリの更新処理でパスが見つかりませんというエラーになります
195デフォルトの名無しさん
2020/05/21(木) 20:15:46.18ID:2OHs6iV3 >>189
その文章そのまんま単純に処理に起こすだけでいけるだろう
その文章そのまんま単純に処理に起こすだけでいけるだろう
196デフォルトの名無しさん
2020/05/21(木) 20:23:35.62ID:L96ERFQO >>194
読込時にテーブルデータを別シートにコピーするようにしとけば?
読込時にテーブルデータを別シートにコピーするようにしとけば?
197デフォルトの名無しさん
2020/05/21(木) 21:28:40.44ID:1bkcSVS7 >>194
Excel.Currentworkbookで、テーブルの値をパスとして読み込むようにしておいて、ファイル移動したらVBAでそのテーブルの値を書き換えるようにする
Excel.Currentworkbookで、テーブルの値をパスとして読み込むようにしておいて、ファイル移動したらVBAでそのテーブルの値を書き換えるようにする
198デフォルトの名無しさん
2020/05/21(木) 22:27:29.78ID:eV6pHfb6 銀行まるめ型だっけ
仕事で四捨五入多用する俺はあの機能がうざすぎる
Format関数使ってるけど素直にRound関数はエクセルと同じ機能にしろよマジで
仕事で四捨五入多用する俺はあの機能がうざすぎる
Format関数使ってるけど素直にRound関数はエクセルと同じ機能にしろよマジで
199デフォルトの名無しさん
2020/05/21(木) 23:25:30.93ID:uS9Lfycl200デフォルトの名無しさん
2020/05/21(木) 23:51:59.74ID:g1Bqd7P3 ある何かをやりたいときに骨子になるコードが完成するともうそこから手直しが楽しくて止まらないわ
201デフォルトの名無しさん
2020/05/22(金) 00:18:17.28ID:TbAUFCKp プロパティと引数の使い分けがいまいちわからん
クラス内の一つのプロシージャで利用する変数なら引数で渡してよいの?
クラス内の一つのプロシージャで利用する変数なら引数で渡してよいの?
202デフォルトの名無しさん
2020/05/22(金) 03:00:05.94ID:qVNfs0Gr 動けばいいんじゃね
203デフォルトの名無しさん
2020/05/22(金) 04:52:54.15ID:HmQhS1LZ プロパティ
とりあえず1個ずつセットしといて、処理の開始は後回しにできる
順番を意識しなくていい
引数
複数の変数を参照渡ししたい時、構造体やサブプロパティは微妙にめんどくさい
セット忘れが防げそう(願望
とりあえず1個ずつセットしといて、処理の開始は後回しにできる
順番を意識しなくていい
引数
複数の変数を参照渡ししたい時、構造体やサブプロパティは微妙にめんどくさい
セット忘れが防げそう(願望
204デフォルトの名無しさん
2020/05/22(金) 06:38:47.78ID:mpVA2e0J >>201
一応定義としては、プロパティはオブジェクトの設定や状態を見たり書いたりするものという事になってる
一度設定したら変えることが殆どない設定はプロパティ、
ちょくちょく変える設定は引数、
みたいな感じでいいと思う
一応定義としては、プロパティはオブジェクトの設定や状態を見たり書いたりするものという事になってる
一度設定したら変えることが殆どない設定はプロパティ、
ちょくちょく変える設定は引数、
みたいな感じでいいと思う
205デフォルトの名無しさん
2020/05/22(金) 07:33:08.57ID:TbAUFCKp206デフォルトの名無しさん
2020/05/22(金) 11:06:37.48ID:y/Lzet5S >>205
色々作ってるとそのうちなんとなくどっちにした方がいいかわかってくると思うよ
色々作ってるとそのうちなんとなくどっちにした方がいいかわかってくると思うよ
207デフォルトの名無しさん
2020/05/22(金) 13:23:07.02ID:DQGXczns 変数ってみんなどんな付け方してんの
My〜とかそういう変数付けたりしてるサイトもあれば色々だね
My〜とかそういう変数付けたりしてるサイトもあれば色々だね
208デフォルトの名無しさん
2020/05/22(金) 13:55:43.58ID:uqJ26gv2 日本語で
「わたしの〜」とかそういう変数名を付けたりしてる。
「わたしの〜」とかそういう変数名を付けたりしてる。
209デフォルトの名無しさん
2020/05/22(金) 18:08:02.11ID:FMkBDb3b 拙者も
210デフォルトの名無しさん
2020/05/22(金) 18:16:23.98ID:CsJitSv2 我(われ)
某(それがし)
拙(せつ)
朕(ちん)
某(それがし)
拙(せつ)
朕(ちん)
211デフォルトの名無しさん
2020/05/22(金) 21:51:59.64ID:Cbv5LLjj セルの数式中で条件成立時のみHYPERLINK関数を生成してるのですが、
@HYPERLINK関数が生成された事を確認
Aリンク切れが無いか確認
する事は可能でしょうか?
イメージは下記ですが、数式は複数のパターンがあり困っています
=if (A1<>"", HYPERLINK(A1&B1,B1),B1)
@HYPERLINK関数が生成された事を確認
Aリンク切れが無いか確認
する事は可能でしょうか?
イメージは下記ですが、数式は複数のパターンがあり困っています
=if (A1<>"", HYPERLINK(A1&B1,B1),B1)
212デフォルトの名無しさん
2020/05/22(金) 23:34:25.54ID:xc22QBUa 未だに二つのセルの掛け算を電卓で計算してて手入力する50歳のおじさんがいる職場なんだよな
213デフォルトの名無しさん
2020/05/23(土) 01:03:15.62ID:pi9ABoQN @HYPERLINK関数が生成された事を確認 -> 隣のセルに If (xxx, 1, 0) とかやっとけばいいんじゃないの
Aリンク切れが無いか確認 -> マクロでHTTPリクエストしてステータスコード見ないと駄目だろうね
Aリンク切れが無いか確認 -> マクロでHTTPリクエストしてステータスコード見ないと駄目だろうね
214デフォルトの名無しさん
2020/05/23(土) 04:02:16.01ID:TU97qQFp >>205
プロパティは根幹部分を触らせるメンテ用メソッド的な意味合いで用意するといいよ。
例えば「何かを〇倍にする」というメソッドを持つクラスがあったとして、
この「何か」部分が引数で、「〇倍」部分がプロパティ。
利用者はプロパティで「〇倍」を「二倍」等に変えて異なる機能を持つインスタンスを作る事が出来る。
もちろん予め二倍や三倍に設定済みのクラスを作ってもいいんだけど、
プロパティで変更出来るようにすれば一つのクラスで済むという利点がある。
インスタンス化してプロパティを変えたオブジェクトを返す関数(コンストラクタ関数)を作れば凄く便利だよ
プロパティは根幹部分を触らせるメンテ用メソッド的な意味合いで用意するといいよ。
例えば「何かを〇倍にする」というメソッドを持つクラスがあったとして、
この「何か」部分が引数で、「〇倍」部分がプロパティ。
利用者はプロパティで「〇倍」を「二倍」等に変えて異なる機能を持つインスタンスを作る事が出来る。
もちろん予め二倍や三倍に設定済みのクラスを作ってもいいんだけど、
プロパティで変更出来るようにすれば一つのクラスで済むという利点がある。
インスタンス化してプロパティを変えたオブジェクトを返す関数(コンストラクタ関数)を作れば凄く便利だよ
215デフォルトの名無しさん
2020/05/23(土) 04:04:50.94ID:TU97qQFp インスタンス化は new クラス名 でオブジェクトを作ることで、
インスタンスはその作成したオブジェクトのことね
インスタンスはその作成したオブジェクトのことね
216デフォルトの名無しさん
2020/05/23(土) 17:42:06.78ID:x2nf7i64 ExcelVBAでCSVファイルを2次元配列に格納しようと思い、そこまで作成はできました。
ここを参照しました:ttps://ateitexe.com/excel-vba-csv-to-multi-dimensional-array/
その配列に格納した後、特定の文字列がある行を削除しようと思うと、配列だとかなり手間だと感じました。
(文字列を検索、行を削除、詰める作業が必要)
だったら、そもそも配列に入れる前にそのcsvの行を無視しようと思うのですが、どうしてもうまくいきません。
どうしたらいいのでしょうか?
ここを参照しました:ttps://ateitexe.com/excel-vba-csv-to-multi-dimensional-array/
その配列に格納した後、特定の文字列がある行を削除しようと思うと、配列だとかなり手間だと感じました。
(文字列を検索、行を削除、詰める作業が必要)
だったら、そもそも配列に入れる前にそのcsvの行を無視しようと思うのですが、どうしてもうまくいきません。
どうしたらいいのでしょうか?
217デフォルトの名無しさん
2020/05/23(土) 17:46:18.03ID:105ldQbQ 文字列を検索、行を削除、詰める作業をお勧めします
218デフォルトの名無しさん
2020/05/23(土) 18:20:37.75ID:RvKaLrIF219デフォルトの名無しさん
2020/05/23(土) 18:40:31.27ID:0VGwJWuY220デフォルトの名無しさん
2020/05/23(土) 18:49:52.27ID:J+1ULzMv 特定の文字列がある行は空にすればええやん
それとも別に空の行も含まれてるんか
それとも別に空の行も含まれてるんか
221デフォルトの名無しさん
2020/05/23(土) 19:27:43.93ID:n1v+MUu8 >>216
そのどうしてもうまくいかない部分を書けよ…
そのどうしてもうまくいかない部分を書けよ…
222デフォルトの名無しさん
2020/05/23(土) 19:33:17.52ID:P5e4K719 例えば、Ruby で、入力ファイルが、
あ,いう
a,bc
1,23
require 'csv'
ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
next if row[ 1 ] == "bc" # skip
ary.push row # 追加
end
p ary #=> [["あ", "いう"], ["1", "23"]]
あ,いう
a,bc
1,23
require 'csv'
ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
next if row[ 1 ] == "bc" # skip
ary.push row # 追加
end
p ary #=> [["あ", "いう"], ["1", "23"]]
223デフォルトの名無しさん
2020/05/23(土) 20:02:14.42ID:FaM1nYaB 要素数を変えるような操作を配列にする場合、
VBAだと大抵は新しい配列を作るような処理にしたほうが楽
foreachで条件にあえば追加する、そんな感じ
VBAだと大抵は新しい配列を作るような処理にしたほうが楽
foreachで条件にあえば追加する、そんな感じ
224デフォルトの名無しさん
2020/05/23(土) 20:16:37.74ID:+RVUJGzG 配列に入れる前にそのcsvの行を無視しようという発想は正しいと思うぞ
Splitする前に文字列判定して、無かったときのみ n=n+1 まで実行するようにすればいけるはずだよ
それと、ary(n, i) = tmp(i) のところは要注意
csvの列数がRedimの行で設定した数分を越えると、配列の範囲外エラーが起きるので
Splitする前に文字列判定して、無かったときのみ n=n+1 まで実行するようにすればいけるはずだよ
それと、ary(n, i) = tmp(i) のところは要注意
csvの列数がRedimの行で設定した数分を越えると、配列の範囲外エラーが起きるので
225デフォルトの名無しさん
2020/05/23(土) 21:48:22.03ID:GhgCxwTJ B列の2行目から最終行に「2020/5/23」のような文字列が入力されているので
この文字列を「2020/5/23」に変換するコードを教えてください
この文字列を「2020/5/23」に変換するコードを教えてください
226デフォルトの名無しさん
2020/05/23(土) 22:07:45.65ID:DEt0hEL0227デフォルトの名無しさん
2020/05/23(土) 22:09:12.15ID:YkB5QRvg >>226
ありがとうございます!
ありがとうございます!
229デフォルトの名無しさん
2020/05/23(土) 23:15:23.23ID:RvKaLrIF230デフォルトの名無しさん
2020/05/23(土) 23:49:07.24ID:DwihZV3Z 例
数値 1500
期間 2020/05/21〜2023/02/12
この期間のセル数に数値1500の値を 均等割で入れる場合のセル数の計算方法がわかりません。
※用意してるセルの期間
2020年1月から2022年12月まで。
※ひと月3分割で1年36マス。
上旬1〜10 中旬11〜20 下旬21〜末
※2022年を超えた場合はそこまでの均等割を入れそれ以降は入れない。
※開始期間が2020年1月以前の場合は1月からの均等割を割り振る。
こんな感じの事をしたいんですけど、期間の計算方法の伝授願います。
数値 1500
期間 2020/05/21〜2023/02/12
この期間のセル数に数値1500の値を 均等割で入れる場合のセル数の計算方法がわかりません。
※用意してるセルの期間
2020年1月から2022年12月まで。
※ひと月3分割で1年36マス。
上旬1〜10 中旬11〜20 下旬21〜末
※2022年を超えた場合はそこまでの均等割を入れそれ以降は入れない。
※開始期間が2020年1月以前の場合は1月からの均等割を割り振る。
こんな感じの事をしたいんですけど、期間の計算方法の伝授願います。
231デフォルトの名無しさん
2020/05/23(土) 23:51:24.02ID:GhgCxwTJ >>225
Sub Test()
Dim cnt As Long
Dim da As Date
For cnt = 2 To Cells(Rows.Count, 2).End(xlUp).Row
da = CDate(Cells(cnt, 2))
Range("B" & cnt) = da
Next cnt
End Sub
Sub Test()
Dim cnt As Long
Dim da As Date
For cnt = 2 To Cells(Rows.Count, 2).End(xlUp).Row
da = CDate(Cells(cnt, 2))
Range("B" & cnt) = da
Next cnt
End Sub
232デフォルトの名無しさん
2020/05/24(日) 00:33:29.03ID:jgkofs6w >>230
VBA関係ないただの算数ないか
VBA関係ないただの算数ないか
233デフォルトの名無しさん
2020/05/24(日) 05:46:51.68ID:kGXS6p+T >>229
君がつけ上がってる限り現れるね
君がつけ上がってる限り現れるね
234デフォルトの名無しさん
2020/05/24(日) 06:12:40.09ID:VMYRmKv4 謙虚にしてたらもっとひどかった
235デフォルトの名無しさん
2020/05/24(日) 06:15:08.38ID:A7TYPIWJ Ruby の、clamp みたいな関数だろ
clamp(min, max) -> object
self を範囲内に収めます。
self <=> min が負数を返したときは min を、 self <=> max が正数を返したときは max を、
それ以外の場合は self を返します
1.clamp(0, 100) #=> 1
101.clamp(0, 100) #=> 100
-1.clamp(0, 100) #=> 0
clamp(min, max) -> object
self を範囲内に収めます。
self <=> min が負数を返したときは min を、 self <=> max が正数を返したときは max を、
それ以外の場合は self を返します
1.clamp(0, 100) #=> 1
101.clamp(0, 100) #=> 100
-1.clamp(0, 100) #=> 0
236デフォルトの名無しさん
2020/05/24(日) 09:33:40.84ID:ozGH/zB/ やたらrubyで表したがるやつなんなの?
無意味だし完全にスレチなんだけど
無意味だし完全にスレチなんだけど
237デフォルトの名無しさん
2020/05/24(日) 09:52:14.39ID:tKHuSqSe それこのスレの透明人間
238デフォルトの名無しさん
2020/05/24(日) 09:56:21.27ID:Aun0kaOs 「おれRuby知ってるんだ(どやぁ)」
じゃね?
じゃね?
239デフォルトの名無しさん
2020/05/24(日) 11:44:26.84ID:0I4G4YZw >>238
え?たかだか一つ言語知ってるだけでどや顔なんて…ありえるかもな。
え?たかだか一つ言語知ってるだけでどや顔なんて…ありえるかもな。
240デフォルトの名無しさん
2020/05/24(日) 15:25:32.37ID:ZTIdhNvp >>230
説明がよくわからない。
サンプルを用意するなど、読み手にわかりやすい工夫をすること。
(期間が複数あってよくわからん、期間の基準が上中下旬なのか2023/2/12みたいな細かい日付もあるのか、
「この期間のセル数に」とか、36「マス」とか。
自分で作ったような言葉を、相手はまず理解できないと思うこと。)
最大限理解しようとして作ってみた。
https://i.imgur.com/aYLnniP.png
https://i.imgur.com/Edwp9qW.png
説明がよくわからない。
サンプルを用意するなど、読み手にわかりやすい工夫をすること。
(期間が複数あってよくわからん、期間の基準が上中下旬なのか2023/2/12みたいな細かい日付もあるのか、
「この期間のセル数に」とか、36「マス」とか。
自分で作ったような言葉を、相手はまず理解できないと思うこと。)
最大限理解しようとして作ってみた。
https://i.imgur.com/aYLnniP.png
https://i.imgur.com/Edwp9qW.png
241デフォルトの名無しさん
2020/05/24(日) 17:31:52.38ID:aHD8sbyt >>230
ひと月を3分割って、微妙に面倒だったりするね
質問は期間の求め方なので、こんな感じでいいと思う
簡単な流れは、月の差-1を出して*3し、開始と終了の日-1を10で割って半端な分を補正する感じ
計算上、初回分も算入する必要がある事に注意(例えば、 5/24 〜 5/24 の場合、単純に引くと0 になるから+1する必要がある)
あと、月の上中下旬単位でのみ考える(2/12 は2/20と同等に扱う)
Function kikan(date1 As Date, date2 As Date) As Integer
Dim res As Integer
res = DateDiff("m", date1, date2) - 1 'VBAでは単純な月の差なのでDay(開始日)>Day(終了日) となる場合を気にしなくていい
If res < 0 Then '同じ月
res = min2((Day(date2) - 1) \ 10, 2) + 1
res = res - min2((Day(date1) - 1) \ 10, 2)
Else
res = res * 3
res = res + 3 - min2((Day(date1) - 1) \ 10, 2)
res = res + 1 + min2((Day(date2) - 1) \ 10, 2)
End If
kikan = res
End Function
Function min2(a, b) : min2 = IIf(a < b, a, b) : End Function
あと、各(月3分割)の均等割を出すとき、単純に等分した数値を次々加算していくと誤差が出る可能性があるので、その都度かけ算で計算しなおした方がいいよ
ひと月を3分割って、微妙に面倒だったりするね
質問は期間の求め方なので、こんな感じでいいと思う
簡単な流れは、月の差-1を出して*3し、開始と終了の日-1を10で割って半端な分を補正する感じ
計算上、初回分も算入する必要がある事に注意(例えば、 5/24 〜 5/24 の場合、単純に引くと0 になるから+1する必要がある)
あと、月の上中下旬単位でのみ考える(2/12 は2/20と同等に扱う)
Function kikan(date1 As Date, date2 As Date) As Integer
Dim res As Integer
res = DateDiff("m", date1, date2) - 1 'VBAでは単純な月の差なのでDay(開始日)>Day(終了日) となる場合を気にしなくていい
If res < 0 Then '同じ月
res = min2((Day(date2) - 1) \ 10, 2) + 1
res = res - min2((Day(date1) - 1) \ 10, 2)
Else
res = res * 3
res = res + 3 - min2((Day(date1) - 1) \ 10, 2)
res = res + 1 + min2((Day(date2) - 1) \ 10, 2)
End If
kikan = res
End Function
Function min2(a, b) : min2 = IIf(a < b, a, b) : End Function
あと、各(月3分割)の均等割を出すとき、単純に等分した数値を次々加算していくと誤差が出る可能性があるので、その都度かけ算で計算しなおした方がいいよ
242デフォルトの名無しさん
2020/05/24(日) 18:45:45.21ID:X8IGI7Pl 均等ではなくなることが分かっているのに均等割というのは一体
均等ではないなら分割の明確なルールと呈示するのが先だろうに
均等ではないなら分割の明確なルールと呈示するのが先だろうに
243デフォルトの名無しさん
2020/05/24(日) 20:23:46.09ID:Ij6CWItZ select case iDay
case 1 to 10
’上旬
case 11 to 20
’中旬
case else
'下旬
end select
こんなんでいいんじゃねーの
case 1 to 10
’上旬
case 11 to 20
’中旬
case else
'下旬
end select
こんなんでいいんじゃねーの
244デフォルトの名無しさん
2020/05/24(日) 20:26:51.14ID:WNKMZrc1 理解ができるのがすげぇよ
俺には文章から何がしたいのか分からん
俺には文章から何がしたいのか分からん
245デフォルトの名無しさん
2020/05/24(日) 20:35:05.58ID:CLZ8mfOM me,too
246デフォルトの名無しさん
2020/05/24(日) 20:45:14.93ID:i+YVCLEB セルに値を手動入力中にVBAから別のセルにアクセスがあるとエラー落ちするんだけど、非同期に処理する方法はないんかね。
VBA側はインターバルタイマーでデータ処理させてて、一方でユーザーはメモ入れたり諸作業したいんだ。
VBA側はインターバルタイマーでデータ処理させてて、一方でユーザーはメモ入れたり諸作業したいんだ。
247デフォルトの名無しさん
2020/05/24(日) 20:46:27.53ID:8AgUd6nh vb全然知らないんだけどサクッと教えてほしい
Range("C2").AutoFill Destination:=Range("C2:C804"), Type:=xlFillDefault
というオートフィル用をするコードがあるとする。
このコードの804部分はいつでも固定値だからセル内の数字を参照するような可変にしたい
一応このコードの前に
Volume = Range("J5").Value
として数字があるセルから数値をVolumeに得てるんだけど
このVolumeを804の部分に当てはめたい
どうしたらいい?
Range("C2").AutoFill Destination:=Range("C2:C804"), Type:=xlFillDefault
というオートフィル用をするコードがあるとする。
このコードの804部分はいつでも固定値だからセル内の数字を参照するような可変にしたい
一応このコードの前に
Volume = Range("J5").Value
として数字があるセルから数値をVolumeに得てるんだけど
このVolumeを804の部分に当てはめたい
どうしたらいい?
248デフォルトの名無しさん
2020/05/24(日) 21:22:14.11ID:xjag2nx7 >>247
馬鹿は死ねよ
馬鹿は死ねよ
249デフォルトの名無しさん
2020/05/24(日) 21:26:46.69ID:YjTDgAdj >>247
" "は文字列を表す
" "は文字列を表す
250デフォルトの名無しさん
2020/05/24(日) 21:29:42.85ID:IJT9Ws79251デフォルトの名無しさん
2020/05/24(日) 21:35:15.28ID:IJT9Ws79252デフォルトの名無しさん
2020/05/24(日) 21:50:08.32ID:8AgUd6nh >>250
C2から始める場合はどうしたらいい?
C2から始める場合はどうしたらいい?
253デフォルトの名無しさん
2020/05/24(日) 22:01:27.85ID:IJT9Ws79 volume = Range("j5")
With Range("c10")
.AutoFill Destination:=.Resize(volume)
これでだめ?
With Range("c10")
.AutoFill Destination:=.Resize(volume)
これでだめ?
254デフォルトの名無しさん
2020/05/24(日) 22:42:24.46ID:Ij6CWItZ Volume = Range("J5").Value
Range("C2").AutoFill Destination:=Range("C2:C" & cCtr(Volume)), Type:=xlFillDefault
こういうことじゃね
Range("C2").AutoFill Destination:=Range("C2:C" & cCtr(Volume)), Type:=xlFillDefault
こういうことじゃね
255デフォルトの名無しさん
2020/05/24(日) 22:43:40.18ID:Ij6CWItZ × cCtr
〇 cStr
〇 cStr
256デフォルトの名無しさん
2020/05/24(日) 23:13:25.93ID:FPjhV5Sl >>246
VBAでブックへの書き込みがないなら、外部から読み取り専用で開いてデータだけ頂いて処理する方法がある
例えばVBScriptならVBAからソースをコピペできる部分も多い
後はChangeイベントで変更が行われた時に、バックエンドとデータを同期する。
処理自体はバックエンドが行う。
サーバーは空いてるPCに(VBAで実行したければ)Excelをインストールして使えばいい。
VBAでブックへの書き込みがないなら、外部から読み取り専用で開いてデータだけ頂いて処理する方法がある
例えばVBScriptならVBAからソースをコピペできる部分も多い
後はChangeイベントで変更が行われた時に、バックエンドとデータを同期する。
処理自体はバックエンドが行う。
サーバーは空いてるPCに(VBAで実行したければ)Excelをインストールして使えばいい。
257デフォルトの名無しさん
2020/05/25(月) 03:36:22.58ID:fpmiA/eB セルに手入力してるんだから保存するんじゃね
258デフォルトの名無しさん
2020/05/25(月) 07:55:53.56ID:2rkq/dFE >>240
遅くなり申し訳ないです。説明が下手すみません。後でゆっくり読んで理解してみます。
遅くなり申し訳ないです。説明が下手すみません。後でゆっくり読んで理解してみます。
259デフォルトの名無しさん
2020/05/25(月) 07:58:34.18ID:2rkq/dFE >>241
知らないコードあるので調べて見ます。
知らないコードあるので調べて見ます。
260デフォルトの名無しさん
2020/05/25(月) 13:23:07.69ID:arQu/7J9 セルの入力規則の選択項目をコンボボックスのListindexみたいに番号抽出って出来ないんでしょうか
261デフォルトの名無しさん
2020/05/25(月) 15:12:23.39ID:TkkoIJYG できる
262デフォルトの名無しさん
2020/05/25(月) 15:21:07.89ID:TNrQR7ea "セルの入力規則の選択項目"と言っているのは、
データの入力規則ウインドウ−設定タブ−条件の設定について、
入力値の種類を"リスト"にしたときの"元の値"に入力した各値のこと?
あとわざわざ番号で抽出する意味は?
この"元の値"をVBAでセル(range)のプロパティから取得すると、だいたい下のどちらかのパターンのStringとなる。
1 "元の値"に入れたそのままのリスト用文字列(「a,b,c」など)
2 "元の値"に入れた参照セル範囲(「=$A$1:$A$5」など)
「番号抽出」とかいう言葉がよく分からんけど、上記で
1なら文字列を配列にするなどで解析して、セルの値(Value)で取得する
2なら参照先を取得して配列にするなどする
とかで"元の値"を利用できるはず
わざわざIndexを取りたいならその配列なりから取ればいい
目的がおかしくなってる可能性がある
データの入力規則ウインドウ−設定タブ−条件の設定について、
入力値の種類を"リスト"にしたときの"元の値"に入力した各値のこと?
あとわざわざ番号で抽出する意味は?
この"元の値"をVBAでセル(range)のプロパティから取得すると、だいたい下のどちらかのパターンのStringとなる。
1 "元の値"に入れたそのままのリスト用文字列(「a,b,c」など)
2 "元の値"に入れた参照セル範囲(「=$A$1:$A$5」など)
「番号抽出」とかいう言葉がよく分からんけど、上記で
1なら文字列を配列にするなどで解析して、セルの値(Value)で取得する
2なら参照先を取得して配列にするなどする
とかで"元の値"を利用できるはず
わざわざIndexを取りたいならその配列なりから取ればいい
目的がおかしくなってる可能性がある
263デフォルトの名無しさん
2020/05/25(月) 16:03:17.20ID:WdAmw2Xs >>260
Function validFormula(c as Range) '選択セルの入力規則式を取得(簡易版)
validFormula = Evaluate(c.Validation.Formula1)
End Function
というユーザー定義関数を用意して
=MATCH(A1,validFormula(A1),FALSE)
の様な感じ
Function validFormula(c as Range) '選択セルの入力規則式を取得(簡易版)
validFormula = Evaluate(c.Validation.Formula1)
End Function
というユーザー定義関数を用意して
=MATCH(A1,validFormula(A1),FALSE)
の様な感じ
264デフォルトの名無しさん
2020/05/25(月) 16:41:06.92ID:arQu/7J9 >>262
説明が下手ですいません
やりたい事は以下のとおりです。
@表示する場合
・機器と通信して、通信データ読み出すとIndex(数値)が取得できる。(変更不可)
・取得値が1の場合、選択リスト要素が"aa,bb,cc,dd"とするとセルにはaaが選択される。
A取得する場合
・セルの選択リストの選択要素が"dd"だった場合、4を返すとなる
・Index=4を通信で送る
コンボボックスだと楽に出来るのですが、セルを使った場合の対処に困っています。大量に項目があるのでコンボボックス一つずつ作成は対応できなくて。
説明が下手ですいません
やりたい事は以下のとおりです。
@表示する場合
・機器と通信して、通信データ読み出すとIndex(数値)が取得できる。(変更不可)
・取得値が1の場合、選択リスト要素が"aa,bb,cc,dd"とするとセルにはaaが選択される。
A取得する場合
・セルの選択リストの選択要素が"dd"だった場合、4を返すとなる
・Index=4を通信で送る
コンボボックスだと楽に出来るのですが、セルを使った場合の対処に困っています。大量に項目があるのでコンボボックス一つずつ作成は対応できなくて。
265デフォルトの名無しさん
2020/05/25(月) 18:18:30.74ID:pvRy3Vo6 PDF出力をするときに、ファイル名をBK19にして、同じフォルダ内の、
"納品書"というフォルダ内に保存したいのですが、保存場所が同じフォルダの同じ階層になってしまいます。
"納品書"フォルダに保存する方法をお願いします
Dim PATH_ As String 'このブックと同じフォルダの"納品書"フォルダ
〜途中省略
PATH_ = ThisWorkbook.Path & "\" & 納品書
〜途中省略
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PATH_ & Range("BK19"), OpenAfterPublish:=False
それと、ネット上のサンプルの中に、For文のNextの後の変数が書いていないものがありますが、どういう時に書かなくていいんですか
"納品書"というフォルダ内に保存したいのですが、保存場所が同じフォルダの同じ階層になってしまいます。
"納品書"フォルダに保存する方法をお願いします
Dim PATH_ As String 'このブックと同じフォルダの"納品書"フォルダ
〜途中省略
PATH_ = ThisWorkbook.Path & "\" & 納品書
〜途中省略
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PATH_ & Range("BK19"), OpenAfterPublish:=False
それと、ネット上のサンプルの中に、For文のNextの後の変数が書いていないものがありますが、どういう時に書かなくていいんですか
266260
2020/05/25(月) 18:21:44.47ID:arQu/7J9 出来ました。
267デフォルトの名無しさん
2020/05/25(月) 19:12:11.07ID:kYm8Dr+5 > PATH_ = ThisWorkbook.Path & "\" & 納品書
PATH_ = ThisWorkbook.Path & "\納品書"
PATH_ = ThisWorkbook.Path & "\納品書"
268デフォルトの名無しさん
2020/05/25(月) 19:17:16.20ID:0mNo0xGU すみませんエクセルですが教えてください
セルに2020/5/25と入っている。
2020/5/25(月)というテキストにしたい。
セルに2020/5/25と入っている。
2020/5/25(月)というテキストにしたい。
270デフォルトの名無しさん
2020/05/25(月) 19:32:32.80ID:RZDTWD0g >>268
セルの書式設定から表示形式をユーザー定義の yyyy/m/d(aaa) にする
セルの書式設定から表示形式をユーザー定義の yyyy/m/d(aaa) にする
271デフォルトの名無しさん
2020/05/25(月) 19:37:30.13ID:voBvEsJz ごめ
PATH_ = ThisWorkbook.Path & "\納品書\"
これは?
PATH_ = ThisWorkbook.Path & "\納品書\"
これは?
273デフォルトの名無しさん
2020/05/25(月) 20:09:54.13ID:0mNo0xGU274デフォルトの名無しさん
2020/05/25(月) 20:55:09.30ID:+lR6vdzO >>273
text関数
text関数
275デフォルトの名無しさん
2020/05/25(月) 21:16:44.80ID:Xi2PhkBU >>273
死ね
死ね
276デフォルトの名無しさん
2020/05/25(月) 21:40:54.06ID:oBwL7wIu >>275
この馬鹿モンが!
この馬鹿モンが!
277デフォルトの名無しさん
2020/05/25(月) 22:09:44.88ID:5DLeDpsM dim sine as object
278デフォルトの名無しさん
2020/05/25(月) 22:59:11.20ID:SN+Wx3Rt Set sine = Nothing
279デフォルトの名無しさん
2020/05/25(月) 23:18:40.90ID:jPur8MoZ テンプレから複数作ってく場合テンプレの右にどんどんコピーしていって
あとでテンプレシート以外を新しいブックに保存
これだとなぁ、おばちゃんがややこしいと文句言うかも
悩むなぁ
あとでテンプレシート以外を新しいブックに保存
これだとなぁ、おばちゃんがややこしいと文句言うかも
悩むなぁ
280デフォルトの名無しさん
2020/05/26(火) 10:12:12.68ID:TGtSSAvG ややこしや
281デフォルトの名無しさん
2020/05/26(火) 12:54:30.53ID:aCjjmYBU 所属してる部署や業務によってやりたい処理が違うから全部まんべんなく覚えていきたいという無駄な欲を捨てんといかんなぁ
はぁぁ大学行かずに専門とかで情シス専攻すればよかった
はぁぁ大学行かずに専門とかで情シス専攻すればよかった
282デフォルトの名無しさん
2020/05/26(火) 15:22:17.74ID:QaHLpt3K アホはしね
283デフォルトの名無しさん
2020/05/26(火) 15:33:26.20ID:aCjjmYBU 毎回それ言うためだけに見に来てるんなら
見なきゃいいのに
見なきゃいいのに
284デフォルトの名無しさん
2020/05/26(火) 17:01:22.50ID:xe35/PQB IT畑の人間は既存の業務フローを神聖不可侵な絶対的公理と考えてそれを自動化しようという発想をしがちだけど、それは注意が必要だと思うわ
自動化以前にそもそも無駄な業務って沢山ある
特にVBAで安易に自動化したくなるような業務はその傾向が強くて、現場の人間とちゃんと話せばあっさり消滅したりするもんだ
自動化以前にそもそも無駄な業務って沢山ある
特にVBAで安易に自動化したくなるような業務はその傾向が強くて、現場の人間とちゃんと話せばあっさり消滅したりするもんだ
285デフォルトの名無しさん
2020/05/26(火) 17:18:49.31ID:2eoVc4aq 客の業務自体の改善に付き合うなんていうめんどくさい事はしないよ
286デフォルトの名無しさん
2020/05/26(火) 18:59:45.92ID:LKm82hyE 客じゃなくて自分の会社なんだろ
287デフォルトの名無しさん
2020/05/26(火) 19:26:44.98ID:VDow7UZ6 これはおかしくね?と思っても依頼されたように作るしかない
288デフォルトの名無しさん
2020/05/26(火) 19:38:37.28ID:4UYpyuwL ああ、上司の命令ならな。
反論しろって?
10個の工程をPGが3工程くらいに短縮すると、理解できなかったりするんだよな。
反論しろって?
10個の工程をPGが3工程くらいに短縮すると、理解できなかったりするんだよな。
289デフォルトの名無しさん
2020/05/26(火) 19:50:36.19ID:e8iGmvo7 そりゃおまいさんが問題の分離ができてないのでは
290デフォルトの名無しさん
2020/05/26(火) 19:52:38.59ID:MDEhHweB 自社の業務改善って自分もしくは管理下の範疇でしかしないわな
責任取れる範囲でやらないと痛い目みるし、ドキュメントだ体制だルールだなんだ面倒だしな
基本周りは全部敵だよ
責任取れる範囲でやらないと痛い目みるし、ドキュメントだ体制だルールだなんだ面倒だしな
基本周りは全部敵だよ
291デフォルトの名無しさん
2020/05/26(火) 20:18:36.27ID:l4mmL3sO そういう組織は長生きしないだろうな
292デフォルトの名無しさん
2020/05/26(火) 20:25:34.60ID:EtaD8bXQ >>230
Ruby で作ってみたけど、めちゃめちゃ複雑な仕様だった!
2020/05/21 〜 2023/02/12
を以下の、3つの期間に分けて、[0, 94, 5] となった!
〜2019/12/31
2020/1/1〜2022/12/31
2023/1/1〜
Ruby で作ってみたけど、めちゃめちゃ複雑な仕様だった!
2020/05/21 〜 2023/02/12
を以下の、3つの期間に分けて、[0, 94, 5] となった!
〜2019/12/31
2020/1/1〜2022/12/31
2023/1/1〜
293292
2020/05/26(火) 20:30:27.90ID:EtaD8bXQ 10日ごとの期間の数が、[0, 94, 5]
294デフォルトの名無しさん
2020/05/26(火) 20:41:03.58ID:I81g2H63 所定のフォルダの中に「AAA.xlsx」という名前のエクセルファイルがあった場合、そのファイルを削除し、
その後同一フォルダ内のエクセルファイルを「AAA.xlsx」というファイル名に変更する、という処理を
しています。マクロ作成当初は問題なく処理できていたのですが、数日前からファイルを削除した後
実際にはエクセルファイルがあるにもかかわらず「エラー53 ファイルが見つかりません」とエラーが
でるようになりました。終了ボタンを押してエラーウィンドウを閉じた後、同じ処理をすると今度は
エラーが出ずに処理できます。
コード自体は変更していないのですが、このように実際には該当するファイルがあるにもかかわらず、
1度目(ファイル削除後ファイル名変更。ファイル削除処理は正常終了)はファイルが見つからずエラー、
2度目(削除するファイルがない状態でファイル名変更)は正常に処理が終了、となってしまう原因で
なにか思い当たるものがある人いますか?
具体的には
AAA.xlsx
20200526.xlsx
↓(AAA.xlsxを削除)←1回目はこの処理の後エラー53
20200526.xlsx
↓(ファイル名変更)
AAA.xlsx
となり、2回目は
20200526.xlsx
↓
AAA.xlsx
で正常に処理ができます。
ファイル名変更は
Name "*.xlsx" as "AAA.xlsx"
で処理しています
その後同一フォルダ内のエクセルファイルを「AAA.xlsx」というファイル名に変更する、という処理を
しています。マクロ作成当初は問題なく処理できていたのですが、数日前からファイルを削除した後
実際にはエクセルファイルがあるにもかかわらず「エラー53 ファイルが見つかりません」とエラーが
でるようになりました。終了ボタンを押してエラーウィンドウを閉じた後、同じ処理をすると今度は
エラーが出ずに処理できます。
コード自体は変更していないのですが、このように実際には該当するファイルがあるにもかかわらず、
1度目(ファイル削除後ファイル名変更。ファイル削除処理は正常終了)はファイルが見つからずエラー、
2度目(削除するファイルがない状態でファイル名変更)は正常に処理が終了、となってしまう原因で
なにか思い当たるものがある人いますか?
具体的には
AAA.xlsx
20200526.xlsx
↓(AAA.xlsxを削除)←1回目はこの処理の後エラー53
20200526.xlsx
↓(ファイル名変更)
AAA.xlsx
となり、2回目は
20200526.xlsx
↓
AAA.xlsx
で正常に処理ができます。
ファイル名変更は
Name "*.xlsx" as "AAA.xlsx"
で処理しています
295デフォルトの名無しさん
2020/05/26(火) 20:46:55.97ID:VDow7UZ6 >>294
エラーが出るコードを見なきゃわからん
エラーが出るコードを見なきゃわからん
296デフォルトの名無しさん
2020/05/26(火) 21:22:32.89ID:EtaD8bXQ >Name "*.xlsx" as "AAA.xlsx"
何となく、この、* がヤバそうw
何となく、この、* がヤバそうw
297デフォルトの名無しさん
2020/05/26(火) 21:32:47.20ID:PZVl0MiE プロパティのセットで配列や複数の引数を渡したいんだけど、送り手側の構文エラーにしかならない
調べても見つからないんだけど普通やらないの?
Variantで宣言しておけば通るっぽいけど
調べても見つからないんだけど普通やらないの?
Variantで宣言しておけば通るっぽいけど
298デフォルトの名無しさん
2020/05/26(火) 22:38:28.15ID:3xGTmG1z Sub テキストをエクセル() 'txtをエクセル化
With CreateObject("wscript.shell")
.currentdirectory = "C:\"
End With
Application.Dialogs(xlDialogOpen).Show "*txt.*"
End Sub
色々調べて作ってみたんですが
テキストファイルウィザードのウィンドウが出て完了を押す という手間が残りやす…
この手間をスキップというか直接Excelにデータ変換…教えてください
With CreateObject("wscript.shell")
.currentdirectory = "C:\"
End With
Application.Dialogs(xlDialogOpen).Show "*txt.*"
End Sub
色々調べて作ってみたんですが
テキストファイルウィザードのウィンドウが出て完了を押す という手間が残りやす…
この手間をスキップというか直接Excelにデータ変換…教えてください
299デフォルトの名無しさん
2020/05/26(火) 23:46:26.84ID:l/nHkMvV また馬鹿が来た
馬鹿は何をやりたいかすら自分で把握すらしていないから馬鹿なんだよ
馬鹿は何をやりたいかすら自分で把握すらしていないから馬鹿なんだよ
300292
2020/05/26(火) 23:56:54.38ID:EtaD8bXQ301デフォルトの名無しさん
2020/05/27(水) 01:10:50.60ID:bxZskA6m >>291
組織なんて巨大になるほど無駄が増えていくもんだ
組織なんて巨大になるほど無駄が増えていくもんだ
302デフォルトの名無しさん
2020/05/27(水) 15:11:46.06ID:ILM8Kvmo >>298
開きかたがそもそも違う
開きかたがそもそも違う
303デフォルトの名無しさん
2020/05/27(水) 20:47:31.58ID:5ROZxNJ2 >>297
配列のプロパティは代入と同じくLet(値渡し)での宣言になる
でも配列は参照渡ししかできないので矛盾が起きて渡せない(ByRel宣言しろと怒られる)
Variantか、インスタンス変数をPublicにするか、Javaみたいにアクセスメソッドを作る
SetterがあるならGetterもあるだろうからPublic宣言がいいんじゃないかな
配列のプロパティは代入と同じくLet(値渡し)での宣言になる
でも配列は参照渡ししかできないので矛盾が起きて渡せない(ByRel宣言しろと怒られる)
Variantか、インスタンス変数をPublicにするか、Javaみたいにアクセスメソッドを作る
SetterがあるならGetterもあるだろうからPublic宣言がいいんじゃないかな
304デフォルトの名無しさん
2020/05/27(水) 20:55:13.77ID:trt6Afr5 294です。エラーが出るコードは以下です
--------------------------------------------------------------------
Sub 入力用フォルダ内の入力用ファイル削除()
Dim myPath As String
myPath = ThisWorkbook.Path & "\入力用\" '入力用.xlsxがすでに存在したら削除
If Dir(myPath & "入力用.xlsx") <> "" Then
Kill myPath & "入力用.xlsx"
End If
End Sub
--------------------------------------------------------------------
Sub 入力用フォルダ内のファイル名変更()
Dim myPath As String
Dim myFile As String
myPath = ThisWorkbook.Path & "\入力用\" '事前にこのフォルダにファイルを入れておく
myFile = Dir(myPath & "*.xlsx")
Call 入力用フォルダ内の入力用ファイル削除 '前回の入力用.xlsxが残っていたら先に削除
Name myPath & myFile As myPath & "入力用.xlsx" 'ファイル名変更
・
・
--------------------------------------------------------------------
エラー53の際にデバッグボタンを押すと最後の
Name myPath & myFile As myPath & "入力用.xlsx"
の行が選択されているので。「myPath」内に「*.xlsx」がない、ということでエラーになっていると
思いますが、実際にはファイルはあるのでもう一度マクロを実行するとファイル名が変更される
という状況です
--------------------------------------------------------------------
Sub 入力用フォルダ内の入力用ファイル削除()
Dim myPath As String
myPath = ThisWorkbook.Path & "\入力用\" '入力用.xlsxがすでに存在したら削除
If Dir(myPath & "入力用.xlsx") <> "" Then
Kill myPath & "入力用.xlsx"
End If
End Sub
--------------------------------------------------------------------
Sub 入力用フォルダ内のファイル名変更()
Dim myPath As String
Dim myFile As String
myPath = ThisWorkbook.Path & "\入力用\" '事前にこのフォルダにファイルを入れておく
myFile = Dir(myPath & "*.xlsx")
Call 入力用フォルダ内の入力用ファイル削除 '前回の入力用.xlsxが残っていたら先に削除
Name myPath & myFile As myPath & "入力用.xlsx" 'ファイル名変更
・
・
--------------------------------------------------------------------
エラー53の際にデバッグボタンを押すと最後の
Name myPath & myFile As myPath & "入力用.xlsx"
の行が選択されているので。「myPath」内に「*.xlsx」がない、ということでエラーになっていると
思いますが、実際にはファイルはあるのでもう一度マクロを実行するとファイル名が変更される
という状況です
305デフォルトの名無しさん
2020/05/27(水) 21:41:05.84ID:d63wepvX306デフォルトの名無しさん
2020/05/27(水) 22:17:38.57ID:auut2Mwo >>304
なぜエラーになった時のmyFileの値を確認しないの?
なぜエラーになった時のmyFileの値を確認しないの?
307デフォルトの名無しさん
2020/05/28(木) 09:11:03.73ID:oSYrowbf Dir関数って何でコレクション返さずに、あんな奇妙な実装なんだろ
なんか訳があるのか
なんか訳があるのか
308デフォルトの名無しさん
2020/05/28(木) 09:41:03.97ID:2MUNkHgk309デフォルトの名無しさん
2020/05/28(木) 09:59:38.59ID:8QzLeV6c FDなんかでディレクトリエントリの順番変えて高速化とかの時代
310デフォルトの名無しさん
2020/05/28(木) 12:03:25.03ID:u/WM2FVL vlookupの参照値がエラーの場合に違うところに飛んでしまいます。エクセルの関数みたいにIFERROE(VLOOKUP(**,**,3,FALSE),"")みたいな処理をするためのコードを教えてください
Dim bigcnt As Long
Sub test()
Dim Pagecnt As Long
Dim rycnt As Long
Dim syouhin As Long
Dim Rowcnt As Long
For Pagecnt = 1 To MaxPage Step 1
Range("DX8").Value = Pagecnt
Rowcnt = 1
For tycnt = 12 To 30 Step 2
On Error Resume Next
Range("K" & tycnt).Value = _
Application.WorksheetFunction.VLookup( _
Application.WorksheetFunction.VLookup(bigcnt,Sheets("uuu").Range("A:C"), 2, False) & "P" & (Pagecnt * 10) - 10 + Rowcnt, _
Sheets("list").Range("B:FU"), 107, False)
Rowcnt = Rowcnt + 1
Next tyucnt
Dim bigcnt As Long
Sub test()
Dim Pagecnt As Long
Dim rycnt As Long
Dim syouhin As Long
Dim Rowcnt As Long
For Pagecnt = 1 To MaxPage Step 1
Range("DX8").Value = Pagecnt
Rowcnt = 1
For tycnt = 12 To 30 Step 2
On Error Resume Next
Range("K" & tycnt).Value = _
Application.WorksheetFunction.VLookup( _
Application.WorksheetFunction.VLookup(bigcnt,Sheets("uuu").Range("A:C"), 2, False) & "P" & (Pagecnt * 10) - 10 + Rowcnt, _
Sheets("list").Range("B:FU"), 107, False)
Rowcnt = Rowcnt + 1
Next tyucnt
311310
2020/05/28(木) 12:03:59.29ID:u/WM2FVL つづき
Rowcnt = 1
For syouhin = 12 To 30 Step 2
On Error Resume Next
Range("AC" & syouhin).Value = _
Application.WorksheetFunction.VLookup( _
Application.WorksheetFunction.VLookup(bigcnt, Sheets("uuu").Range("A:C"), 2, False) & "P" & (Pagecnt * 10) - 10 + Rowcnt, _
Sheets("list").Range("B:FU"), 63, False)
Rowcnt = Rowcnt + 1
Next syouhina
Next Pagecnt
End Sub
↓のこの変でエラーがでると、次の処理が予測不能な参照値に飛びます
bigcnt,Sheets("uuu").Range("A:C"), 2, False) & "P" & (Pagecnt * 10) - 10 + Rowcnt, _
"On Error GoTo 0"にしてもvlookupで参照できずにとまり、やはり予測不能な参照値に飛びます
bigcntは正しい値に更新されていました
Rowcnt = 1
For syouhin = 12 To 30 Step 2
On Error Resume Next
Range("AC" & syouhin).Value = _
Application.WorksheetFunction.VLookup( _
Application.WorksheetFunction.VLookup(bigcnt, Sheets("uuu").Range("A:C"), 2, False) & "P" & (Pagecnt * 10) - 10 + Rowcnt, _
Sheets("list").Range("B:FU"), 63, False)
Rowcnt = Rowcnt + 1
Next syouhina
Next Pagecnt
End Sub
↓のこの変でエラーがでると、次の処理が予測不能な参照値に飛びます
bigcnt,Sheets("uuu").Range("A:C"), 2, False) & "P" & (Pagecnt * 10) - 10 + Rowcnt, _
"On Error GoTo 0"にしてもvlookupで参照できずにとまり、やはり予測不能な参照値に飛びます
bigcntは正しい値に更新されていました
312デフォルトの名無しさん
2020/05/28(木) 12:27:26.72ID:CwUX9Txr next に変なカウンタつけるなよ
313310
2020/05/28(木) 13:05:26.67ID:u/WM2FVL すみません。
rycnt→tycnt
tyucnt→tycnt
syouhina→syouhin
rycnt→tycnt
tyucnt→tycnt
syouhina→syouhin
314デフォルトの名無しさん
2020/05/28(木) 13:15:00.91ID:8QzLeV6c 読む気無いけどvlookup使うのは高速化とかが目的?
VBAerなら自分で探したほうが融通効かないか?
VBAerなら自分で探したほうが融通効かないか?
315デフォルトの名無しさん
2020/05/28(木) 13:28:52.23ID:VMjOSmuX 悪いけど、vlookup使う方がセンスいいと思うよ
316デフォルトの名無しさん
2020/05/28(木) 13:51:27.19ID:EbwElpou 俺もそう思う
317デフォルトの名無しさん
2020/05/28(木) 14:17:55.81ID:fQiHMFwM 正直まともに読む気がしなくなる
・誤字が多すぎてエラーにならないわけがない(手打ちしてるんだろ)
・シート上の範囲とかシート名、構成が不明すぎる
・同じく変数が不明すぎる(こちらはbigcntとかmaxpageとか全く知らない)
・何でデバッグで一時変数に入れるとかしないのか(二つめと四つめのVlookupは返り値とれるやろ。エラーがでるならそこかもしれんやろ、しらんが)
・なんでon errorはその二つしか試してないの、てかデバッグするなら回避しなければいいのに
速度求めるのにworksheetfunction使うのはいいけど、
こんな感じで雑に使うと可読性下がるから、そこは理解してつかって
・誤字が多すぎてエラーにならないわけがない(手打ちしてるんだろ)
・シート上の範囲とかシート名、構成が不明すぎる
・同じく変数が不明すぎる(こちらはbigcntとかmaxpageとか全く知らない)
・何でデバッグで一時変数に入れるとかしないのか(二つめと四つめのVlookupは返り値とれるやろ。エラーがでるならそこかもしれんやろ、しらんが)
・なんでon errorはその二つしか試してないの、てかデバッグするなら回避しなければいいのに
速度求めるのにworksheetfunction使うのはいいけど、
こんな感じで雑に使うと可読性下がるから、そこは理解してつかって
318デフォルトの名無しさん
2020/05/28(木) 14:35:32.74ID:1No7OPPN こんな感じかな
Function myVLookup(lookup, tbl As Range, col As Integer, Optional flg = True) '個人的にはflg=Falsebノしたいけど
On Error GoTo err1
myVLookup = WorksheetFunction.VLookup(lookup, tbl, col, flg)
Exit Function
err1:
'Debug.Print lookup, tbl.Address
myVLookup = ""
End Function
Function myVLookup(lookup, tbl As Range, col As Integer, Optional flg = True) '個人的にはflg=Falsebノしたいけど
On Error GoTo err1
myVLookup = WorksheetFunction.VLookup(lookup, tbl, col, flg)
Exit Function
err1:
'Debug.Print lookup, tbl.Address
myVLookup = ""
End Function
319デフォルトの名無しさん
2020/05/28(木) 14:55:35.18ID:1No7OPPN 訂正
× Optional flg=True
○ Optional flg=1
VBAだから、True=-1だっけ
× Optional flg=True
○ Optional flg=1
VBAだから、True=-1だっけ
320デフォルトの名無しさん
2020/05/28(木) 15:47:43.10ID:A0D9Z3DQ vbaerってなんでしょうか?
321デフォルトの名無しさん
2020/05/28(木) 16:26:49.63ID:Xg+0aVY9322デフォルトの名無しさん
2020/05/28(木) 17:23:33.07ID:vsv+AImU 測定系の部署だから
エクセル関数でもリスト作ったりとかそういうのは使わないんだよぁ
計算系はすんげぇ使う
エクセル関数でもリスト作ったりとかそういうのは使わないんだよぁ
計算系はすんげぇ使う
323デフォルトの名無しさん
2020/05/28(木) 17:32:02.90ID:NxeE/SGI 100万行以上ある表で特定の範囲に太字があるセルがある場合にTrueを返却したいのですが、
セルをループする以外で判定する方法はないでしょうか。
ループだと遅いので他の方法を探しています。
セルをループする以外で判定する方法はないでしょうか。
ループだと遅いので他の方法を探しています。
324デフォルトの名無しさん
2020/05/28(木) 17:40:50.70ID:YLdey8mA 太字で判定するしかない設計を見直す
325デフォルトの名無しさん
2020/05/28(木) 17:53:26.74ID:6oAsq0wQ326デフォルトの名無しさん
2020/05/28(木) 18:24:58.06ID:NxeE/SGI327デフォルトの名無しさん
2020/05/28(木) 18:33:29.93ID:1No7OPPN 例えば、セルB1にして =GET.CELL(20,A1)*1 を LeftIsBold とでも名前定義
太字を確認したい列の右隣に、=LeftIsBold と入力して、それを合計する
遅いか速いかは知らないけど、Excel4.0マクロだから、ユーザー定義関数関数使うよりは早いと思う
あと、文字単位の太字には未対応
太字で判定する設計が良くないのは同意
太字を確認したい列の右隣に、=LeftIsBold と入力して、それを合計する
遅いか速いかは知らないけど、Excel4.0マクロだから、ユーザー定義関数関数使うよりは早いと思う
あと、文字単位の太字には未対応
太字で判定する設計が良くないのは同意
328デフォルトの名無しさん
2020/05/28(木) 18:44:24.85ID:nu6DWAbq ユーザーフォームを印刷したいんだけどA4横印刷で一枚に収まるように倍率変更って出来ない?
ちょろっと調べると印刷設定に依存するとか書いてある。
吐き出し用のシートやらコード書くの面倒だし、フォームだけが印刷出来ればいいんだが本当に無理?
ちょろっと調べると印刷設定に依存するとか書いてある。
吐き出し用のシートやらコード書くの面倒だし、フォームだけが印刷出来ればいいんだが本当に無理?
329デフォルトの名無しさん
2020/05/28(木) 19:09:14.00ID:HPtbnCn7 >>328
1回PDFにして、PDFビューアの機能でA4フィット印刷 じゃだめ?
1回PDFにして、PDFビューアの機能でA4フィット印刷 じゃだめ?
330デフォルトの名無しさん
2020/05/28(木) 19:19:51.07ID:GEIkGrn6 >>326
XMLで読み込めば判るんじゃないの?
XMLで読み込めば判るんじゃないの?
331デフォルトの名無しさん
2020/05/28(木) 20:56:43.74ID:0S10FlCu >>330
100万行のワークシートをXMLにするとデータ量が10陪ぐらいになることもあるから、たぶんワークシートをVBAで直接調べた方が早い
100万行のワークシートをXMLにするとデータ量が10陪ぐらいになることもあるから、たぶんワークシートをVBAで直接調べた方が早い
332デフォルトの名無しさん
2020/05/28(木) 21:21:26.06ID:PIoPunSP >>323
usedrangeの範囲を太字で検索してあればtrueは?
usedrangeの範囲を太字で検索してあればtrueは?
333デフォルトの名無しさん
2020/05/28(木) 21:44:10.77ID:GEIkGrn6334デフォルトの名無しさん
2020/05/28(木) 22:37:07.33ID:0S10FlCu >>333
ネットを経由したらもっと遅くなると思うぞ
ネットを経由したらもっと遅くなると思うぞ
335デフォルトの名無しさん
2020/05/28(木) 22:48:39.38ID:0S10FlCu336323
2020/05/28(木) 23:44:38.45ID:AwZmzoZa みなさんいろいろありがとうございます。
結局ループですることになりそうです
>>335さんのコードと同じような気がしますが、その数秒〜十数秒が短縮できないかなと思ってました。
ありがとうございました。
結局ループですることになりそうです
>>335さんのコードと同じような気がしますが、その数秒〜十数秒が短縮できないかなと思ってました。
ありがとうございました。
337デフォルトの名無しさん
2020/05/29(金) 00:08:23.93ID:QVnkNeSg まあどう考えても>>324
338デフォルトの名無しさん
2020/05/29(金) 06:08:45.93ID:OHJZg62K 業務上100万件のデータ処理が必要なら専用のソフトを独自に作るべきだろう
初心者にVBAでやらせる上司が無能としか言いようがない
今までその業務手作業でやってたんだとしたらそのままのやり方続けていればいいんじゃね
初心者にVBAでやらせる上司が無能としか言いようがない
今までその業務手作業でやってたんだとしたらそのままのやり方続けていればいいんじゃね
339デフォルトの名無しさん
2020/05/29(金) 06:43:32.30ID:z6j/3IlC >>329
印刷出来れば構いません。
印刷出来れば構いません。
341デフォルトの名無しさん
2020/05/29(金) 12:52:21.52ID:UXGV4L+b 物凄いコードを3つ
前スレで教えてくれたあの人たちが
今でもここを見てくれてますように
前スレで教えてくれたあの人たちが
今でもここを見てくれてますように
342デフォルトの名無しさん
2020/05/29(金) 12:59:11.86ID:wRO7TzMi >>323
その範囲.Font.Bold
その範囲.Font.Bold
343デフォルトの名無しさん
2020/05/29(金) 13:16:11.31ID:I8K8veff 指定したフォルダ内の"B"で始まるxlsファイルの"表紙"シートの各箇所を
このブックの"comp"シートA〜C列の2行目以降に書き出していくコードを教えてください
Dim path As String ,buf As String, i As Long
Dim mysheet As Worksheet, srcbook As Workbook, srcsheet As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)'フォルダを選択する
If .Show = 0 Then
MsgBox "キャンセルされました。"
Exit Sub
End If
path = .SelectedItems(1)
End With
Set mysheet = ThisWorkbook.Worksheets("comp")
buf = Dir(path & "B*.xls")
Do While buf <> ""
i = i + 1
Set srcbook = Workbook.Open(path + buf)
Set srcsheet = srcbook.Worksheets("表紙")
mysheet.Cells(i, 1).Value = srcsheet.Cells(3, 13)
mysheet.Cells(i, 2).Value = srcsheet.Cells(5, 2)
mysheet.Cells(i, 3).Value = srcsheet.Cells(7, 2)
srcbook.Close False
buf = Dir()
Loop
を試したのですが、だめでした
このブックの"comp"シートA〜C列の2行目以降に書き出していくコードを教えてください
Dim path As String ,buf As String, i As Long
Dim mysheet As Worksheet, srcbook As Workbook, srcsheet As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)'フォルダを選択する
If .Show = 0 Then
MsgBox "キャンセルされました。"
Exit Sub
End If
path = .SelectedItems(1)
End With
Set mysheet = ThisWorkbook.Worksheets("comp")
buf = Dir(path & "B*.xls")
Do While buf <> ""
i = i + 1
Set srcbook = Workbook.Open(path + buf)
Set srcsheet = srcbook.Worksheets("表紙")
mysheet.Cells(i, 1).Value = srcsheet.Cells(3, 13)
mysheet.Cells(i, 2).Value = srcsheet.Cells(5, 2)
mysheet.Cells(i, 3).Value = srcsheet.Cells(7, 2)
srcbook.Close False
buf = Dir()
Loop
を試したのですが、だめでした
344デフォルトの名無しさん
2020/05/29(金) 13:36:39.75ID:Afg8U+25 debug.print入れまくれ
で、どこがどうだめだったの?
で、どこがどうだめだったの?
345デフォルトの名無しさん
2020/05/29(金) 13:38:45.34ID:x/xJoOz3 buf = Dir(path & "B*.xls")
の後ろに、
Debug.print buf
Debug.print path & "B○○.xls" <--実際のファイル名を入れる
で、何か気づくと思うよ
の後ろに、
Debug.print buf
Debug.print path & "B○○.xls" <--実際のファイル名を入れる
で、何か気づくと思うよ
346デフォルトの名無しさん
2020/05/29(金) 14:59:14.36ID:4ofbCjLS xls形式って古くね
347デフォルトの名無しさん
2020/05/29(金) 15:00:54.79ID:xfksWnzq Dir君はいい加減デバッグ機能覚えようぜ
ローカルウインドウ見ながらステップイン連打しよう
ローカルウインドウ見ながらステップイン連打しよう
348343
2020/05/29(金) 16:23:07.80ID:I8K8veff >>344,345,346,347
できました!ありがとうございます。
path & "B*.xls"
↓↓↓↓↓↓
path & "\B*.xls"
Workbook.Open(path + buf)
↓↓↓↓↓↓
Workbooks.Open(path &"\"& buf)
だったみたいです
できました!ありがとうございます。
path & "B*.xls"
↓↓↓↓↓↓
path & "\B*.xls"
Workbook.Open(path + buf)
↓↓↓↓↓↓
Workbooks.Open(path &"\"& buf)
だったみたいです
349デフォルトの名無しさん
2020/05/29(金) 18:24:55.94ID:ofRjPTJp 教えてください
クリップボードにあるキャプチャを全て貼り付けるマクロできますか。
ちなみに、win+Vで、過去のキャプチャ履歴が出てきます
クリップボードにあるキャプチャを全て貼り付けるマクロできますか。
ちなみに、win+Vで、過去のキャプチャ履歴が出てきます
350デフォルトの名無しさん
2020/05/29(金) 18:44:55.24ID:FhfEW/N2 過去の履歴はクリップボードにはもうありません
351デフォルトの名無しさん
2020/05/29(金) 19:17:03.09ID:/mLagXjz 馬鹿の特徴
教えて、助けて系で始まる書き込みをする
教えて、助けて系で始まる書き込みをする
352デフォルトの名無しさん
2020/05/29(金) 19:46:11.43ID:ofRjPTJp353デフォルトの名無しさん
2020/05/29(金) 20:15:13.52ID:o3jQNOd+ >>350
昔はフリーウェアで対応してたけど、Win10のクリップボードには履歴機能が標準で付いた
昔はフリーウェアで対応してたけど、Win10のクリップボードには履歴機能が標準で付いた
354デフォルトの名無しさん
2020/05/29(金) 20:22:58.37ID:rds5fVij 馬鹿は、Win10全てが同じだと思っている
355デフォルトの名無しさん
2020/05/29(金) 21:14:41.12ID:Z5PYtswD なるほどね
APIが公開されているからそれを使えばいいと思うよ
APIが公開されているからそれを使えばいいと思うよ
356デフォルトの名無しさん
2020/05/29(金) 21:47:35.41ID:be+QuDfe Debug.Printの代わりにMsgbox
↓
うっかりループで使う
↓
必死に×とかEsc連打
↓
うっかりループで使う
↓
必死に×とかEsc連打
357デフォルトの名無しさん
2020/05/30(土) 00:10:31.73ID:r1iWOzqa VBAで親クラスのインスタンスを子クラスに渡して子クラスから親クラスのメソッドにアクセスする方法ってあります?
358デフォルトの名無しさん
2020/05/30(土) 05:29:34.61ID:n48qxrxQ 母のパンティを娘に渡して
娘から母のセックスにチェンジする方法はあるよ
娘から母のセックスにチェンジする方法はあるよ
359デフォルトの名無しさん
2020/05/30(土) 06:41:58.45ID:lz52cF2O >>350
いつまでXP使ってるんだよ
いつまでXP使ってるんだよ
360デフォルトの名無しさん
2020/05/30(土) 10:18:37.36ID:Lg+IyK0J 仕様書みたいの書かないとダメだな
数年前に自分で作ったの手直ししなきゃなんだけど
結構でかいんでコード理解して全体像を把握するのが大変だわ
仕様書とかそういうのってたぶん書き方があるんだろうね
その辺勉強しなきゃダメだね
数年前に自分で作ったの手直ししなきゃなんだけど
結構でかいんでコード理解して全体像を把握するのが大変だわ
仕様書とかそういうのってたぶん書き方があるんだろうね
その辺勉強しなきゃダメだね
361デフォルトの名無しさん
2020/05/30(土) 10:44:24.19ID:A129boaw 過去の自分が書いたソースは他人が書いた物
362デフォルトの名無しさん
2020/05/30(土) 10:47:20.95ID:gDHPXROS @画面をプリントスクリーン
Aエクセルなりを開いてペースト
B戻る
ABがいちいち面倒くさいので、理想的にはプリントスクリーンすれば勝手にそれがペーストされていけば良いのですが。できないかな。
Aエクセルなりを開いてペースト
B戻る
ABがいちいち面倒くさいので、理想的にはプリントスクリーンすれば勝手にそれがペーストされていけば良いのですが。できないかな。
363デフォルトの名無しさん
2020/05/30(土) 11:13:20.00ID:gDHPXROS 続き
あるいはwin+Vで貯まってるキャプチャを自動的にダウンロード出来れば、と思いました
あるいはwin+Vで貯まってるキャプチャを自動的にダウンロード出来れば、と思いました
364デフォルトの名無しさん
2020/05/30(土) 11:26:13.81ID:4gyXKXc6365デフォルトの名無しさん
2020/05/30(土) 11:40:59.92ID:Lg+IyK0J 氏名住所をユーザーフォームで連続入力してリストに登録するじゃん
んで、フォーム上の印刷ボタンを押すと、ワークシート上に用意されてるテンプレ書類に
氏名住所が必要な箇所に順次記入されて印刷される
ていうよくありがちなプログラムあるでしょ
このテンプレ書類に数式を使って氏名住所を別のセルにも転記するようにしておく
例えば、VBAでA1に氏名が記入されるとすると
B1に =A1 って書いておけばB1にも氏名が記入されて印刷される
これも当たり前なんだけど
このB1に入る数式にユーザー定義関数使うと、うまく動かないのな
Application.Calculate とかもうまくいかなかったわ
うまくいかないってのは計算してくれないってことだけど
んで、フォーム上の印刷ボタンを押すと、ワークシート上に用意されてるテンプレ書類に
氏名住所が必要な箇所に順次記入されて印刷される
ていうよくありがちなプログラムあるでしょ
このテンプレ書類に数式を使って氏名住所を別のセルにも転記するようにしておく
例えば、VBAでA1に氏名が記入されるとすると
B1に =A1 って書いておけばB1にも氏名が記入されて印刷される
これも当たり前なんだけど
このB1に入る数式にユーザー定義関数使うと、うまく動かないのな
Application.Calculate とかもうまくいかなかったわ
うまくいかないってのは計算してくれないってことだけど
366デフォルトの名無しさん
2020/05/30(土) 12:46:49.94ID:gDHPXROS367デフォルトの名無しさん
2020/05/30(土) 13:37:34.40ID:VTd6O4v1 同じなんだけどVBAで膨大な演算処理をコード組んでプロシージャ合わせて作っても
おっさんから
「ああ、マクロの記録して作ったやつね」
て言われると少しイラつく
記録じゃつくれねーほど汎用性高くしてんだろうがボケが
おっさんから
「ああ、マクロの記録して作ったやつね」
て言われると少しイラつく
記録じゃつくれねーほど汎用性高くしてんだろうがボケが
368デフォルトの名無しさん
2020/05/30(土) 13:50:56.52ID:LDe7UQpm vbaごときでイキっててわろた
369デフォルトの名無しさん
2020/05/30(土) 14:27:17.60ID:+Oty3aJ4 無知は罪
370デフォルトの名無しさん
2020/05/30(土) 14:46:50.67ID:A129boaw そこでイラついてるうちはまだまだ
371デフォルトの名無しさん
2020/05/30(土) 15:22:49.38ID:uSpMLuhJ VBAはOLさんでも出来る(正論)
372デフォルトの名無しさん
2020/05/30(土) 15:27:58.73ID:4gyXKXc6 マクロの記録しかできない人、Win32APIを使いこなす人、どっちも「VBAができる人」と言われてしまう
373デフォルトの名無しさん
2020/05/30(土) 15:39:22.28ID:49ARh1d+ トリッキーなことはやらない方がいい
374デフォルトの名無しさん
2020/05/30(土) 15:45:07.44ID:49ARh1d+ >>365
個人情報とかちゃんと管理しないと流出した場合責任とれる?
個人情報とかちゃんと管理しないと流出した場合責任とれる?
375デフォルトの名無しさん
2020/05/30(土) 16:36:13.67ID:PhwvBcVJ376デフォルトの名無しさん
2020/05/30(土) 16:55:50.78ID:NW87G0lL >>367
そんなことでイラつく自分を見直そう
そんなことでイラつく自分を見直そう
377デフォルトの名無しさん
2020/05/30(土) 17:00:12.37ID:EKBxQQvi 14列目から全てセルの巾15ピクセルで固定されてます。指定したピクセル数に伸ばしたり縮めたりしたいんですがどうしたらいいですか?
privata Function AAA(objTarSht,intPicel)
clmTar=14
do until objTarSht.Cells(1,clmTar)=空
ここ
clmTar=clmTar + 1
loop
privata Function AAA(objTarSht,intPicel)
clmTar=14
do until objTarSht.Cells(1,clmTar)=空
ここ
clmTar=clmTar + 1
loop
378デフォルトの名無しさん
2020/05/30(土) 17:25:53.46ID:4gyXKXc6 >>377
Private Function AAA(objTarSht, intPixel)
clmTar = 14
Do Until objTarSht.Cells(1, clmTar) = ""
Columns(clmTar).ColumnWidth = intPixel * 0.118
clmTar = clmTar + 1
Loop
Private Function AAA(objTarSht, intPixel)
clmTar = 14
Do Until objTarSht.Cells(1, clmTar) = ""
Columns(clmTar).ColumnWidth = intPixel * 0.118
clmTar = clmTar + 1
Loop
379デフォルトの名無しさん
2020/05/30(土) 17:36:07.32ID:x6N4SK2n セルのHJ1に式で「=TEXT(EDATE(DE2,(DAY(DE2)>20)+(DT2<>"")),"yyyy""_""m")」をいれて、
最下行までオートフィルをして、HJ列をコピペで値だけにしていますが
vbaのforで作ってみたいので、この部分をVBAにした場合のコードを教えてください
「=TEXT(EDATE(DE2,(DAY(DE2)>20)+(DT2<>"")),"yyyy""_""m")」
最下行までオートフィルをして、HJ列をコピペで値だけにしていますが
vbaのforで作ってみたいので、この部分をVBAにした場合のコードを教えてください
「=TEXT(EDATE(DE2,(DAY(DE2)>20)+(DT2<>"")),"yyyy""_""m")」
380デフォルトの名無しさん
2020/05/30(土) 17:41:18.80ID:NW87G0lL いやまず自分で作ってみろよ…
381デフォルトの名無しさん
2020/05/30(土) 18:14:09.22ID:HFWpOc40 >>359
馬鹿は書かなければいいのに
馬鹿は書かなければいいのに
382379
2020/05/30(土) 18:40:42.91ID:x6N4SK2n =TEXT(
EDATE(DE2,
(DAY(DE2)>20)+(DT2<>""))
,"yyyy""_""m")
の並び順で
For cnt = 2 To i
Range("HJ1") =
Format( _'「=TEXT(」にあたる部分
**********'「EDATE(DE2,」EDATEにあたる部分
'「(DAY(DE2)>20)+(DT2<>""))」にあたる部分
DateSerial(Range("DE" & cnt) > 20 + (Range("DT" & cnt) <> "")
,"yyyy""_""m" '「,"yyyy""_""m")」にあたる部分
Next cnt
EDATE(DE2,
(DAY(DE2)>20)+(DT2<>""))
,"yyyy""_""m")
の並び順で
For cnt = 2 To i
Range("HJ1") =
Format( _'「=TEXT(」にあたる部分
**********'「EDATE(DE2,」EDATEにあたる部分
'「(DAY(DE2)>20)+(DT2<>""))」にあたる部分
DateSerial(Range("DE" & cnt) > 20 + (Range("DT" & cnt) <> "")
,"yyyy""_""m" '「,"yyyy""_""m")」にあたる部分
Next cnt
383デフォルトの名無しさん
2020/05/30(土) 18:59:33.29ID:IeNY1P6O >>367
それ本当にマクロか?っていう圧倒的なものを作ってみるといい。
それ本当にマクロか?っていう圧倒的なものを作ってみるといい。
384デフォルトの名無しさん
2020/05/30(土) 19:06:40.97ID:RuztwjMU385デフォルトの名無しさん
2020/05/30(土) 19:52:23.30ID:NW87G0lL どんだけ人間小さくて承認欲求高いんだよ…
386デフォルトの名無しさん
2020/05/30(土) 20:13:00.67ID:v+h7hopE387デフォルトの名無しさん
2020/05/30(土) 20:39:02.93ID:x6N4SK2n388デフォルトの名無しさん
2020/05/30(土) 21:05:02.60ID:n48qxrxQ389デフォルトの名無しさん
2020/05/30(土) 21:08:47.70ID:A129boaw そういう事を防ぐために能鷹隠爪で
390デフォルトの名無しさん
2020/05/30(土) 21:10:58.46ID:n48qxrxQ >>364
これはなにで動いているのですか?
これはなにで動いているのですか?
391デフォルトの名無しさん
2020/05/30(土) 21:14:47.20ID:49ARh1d+ >>388
仕事で依頼されたなら、仕事やれよ
仕事で依頼されたなら、仕事やれよ
392デフォルトの名無しさん
2020/05/30(土) 21:45:04.41ID:/9v+/+fv >>382
式が何をしようとしているのか不明。
・何でHJ1(1行目)で2行目の値を評価しているの?
・20日以降は次月として捉えているように見えるけどDT列には何が入るの?
空じゃなければ更に月を進める?
Forの使い方という点にコメント
これだけじゃ cnt がどこまで回ればよいかわからんよね。たとえば、
i = 30
For cnt 2 To i
とするか、
For cnt 2 To 30
とかすれば、Loopはする。
でも書き込むセルが Range("HJ1") に固定されてるから、これじゃ同じセルに
30回、延々と上書きするだけになる。
書き込み先を動的に変える場合は、範囲Objectは Range("番地")じゃなくて、
Cells(行番号、列番号)を使うといい。この中でcntを使えば。
EDATE関数にあたるVBA関数はDateAdd
TEXT関数はFormatでOK。
式が何をしようとしているのか不明。
・何でHJ1(1行目)で2行目の値を評価しているの?
・20日以降は次月として捉えているように見えるけどDT列には何が入るの?
空じゃなければ更に月を進める?
Forの使い方という点にコメント
これだけじゃ cnt がどこまで回ればよいかわからんよね。たとえば、
i = 30
For cnt 2 To i
とするか、
For cnt 2 To 30
とかすれば、Loopはする。
でも書き込むセルが Range("HJ1") に固定されてるから、これじゃ同じセルに
30回、延々と上書きするだけになる。
書き込み先を動的に変える場合は、範囲Objectは Range("番地")じゃなくて、
Cells(行番号、列番号)を使うといい。この中でcntを使えば。
EDATE関数にあたるVBA関数はDateAdd
TEXT関数はFormatでOK。
393デフォルトの名無しさん
2020/05/30(土) 21:53:02.87ID:IeNY1P6O >ExcelやWordの複雑な機能のことに異常に詳しいと思われてて
ありがちな誤解だよな。
プログラムがわかるから細かい機能を知らなくてもどうにか出来るわけで、
ありがちな誤解だよな。
プログラムがわかるから細かい機能を知らなくてもどうにか出来るわけで、
394デフォルトの名無しさん
2020/05/30(土) 21:53:27.20ID:IeNY1P6O Word、Excelの専門家じゃないってのに。
395デフォルトの名無しさん
2020/05/30(土) 22:38:43.08ID:I7l9umXM wordの複雑な機能って?
396デフォルトの名無しさん
2020/05/30(土) 23:40:16.05ID:JE+7y9de フィールドとか?
397デフォルトの名無しさん
2020/05/31(日) 01:07:44.41ID:0lS4xVrw WordVBAとか
398デフォルトの名無しさん
2020/05/31(日) 01:47:47.46ID:6kaO8G32 初歩的ですみませんが、sub ()の()の中に文字列が入ることありますか?
買った教本の例題にこの中に文字列が書かれてるのが一つだけあるんですが、おそらくそのせいでマクロが動きません
買った教本の例題にこの中に文字列が書かれてるのが一つだけあるんですが、おそらくそのせいでマクロが動きません
399デフォルトの名無しさん
2020/05/31(日) 02:38:20.45ID:2V+gQfrN >>398
理解できない奴には無理
理解できない奴には無理
400デフォルトの名無しさん
2020/05/31(日) 02:39:52.93ID:86R8wtw/401デフォルトの名無しさん
2020/05/31(日) 02:41:39.96ID:86R8wtw/ しかも周りに座ってるような同僚は
わたしより仕事スピードが1/2〜1/10の人たちばかりなのに。
わたしより仕事スピードが1/2〜1/10の人たちばかりなのに。
402デフォルトの名無しさん
2020/05/31(日) 02:50:27.87ID:0yzq8zA/ >>398
subプロシージャで調べてみ
subプロシージャで調べてみ
403デフォルトの名無しさん
2020/05/31(日) 02:50:46.87ID:6kaO8G32404デフォルトの名無しさん
2020/05/31(日) 02:51:03.70ID:6kaO8G32 >>402
調べてみます!
調べてみます!
405デフォルトの名無しさん
2020/05/31(日) 02:52:54.38ID:wkpADETk >>401
じゃあ転職しろよw
じゃあ転職しろよw
406デフォルトの名無しさん
2020/05/31(日) 02:56:41.46ID:2V+gQfrN407デフォルトの名無しさん
2020/05/31(日) 03:25:44.77ID:C8J9R7KI408デフォルトの名無しさん
2020/05/31(日) 03:27:49.96ID:C8J9R7KI409蟻人間 ◆T6xkBnTXz7B0
2020/05/31(日) 04:00:28.58ID:KExNe49d エクセルにはリファレンスマニュアルが付属していて、追加でインストールするとF1ヘルプで言語仕様まで見られる。
マニュアルがパソコンに入ってなかったら、管理者からエクセルのシーディーを借りてね。
マニュアルがパソコンに入ってなかったら、管理者からエクセルのシーディーを借りてね。
410デフォルトの名無しさん
2020/05/31(日) 05:00:56.16ID:pJwiV8F0411デフォルトの名無しさん
2020/05/31(日) 08:40:31.29ID:6kaO8G32 ごめんなさい
sub test ()でした
sub test ()でした
412デフォルトの名無しさん
2020/05/31(日) 08:57:53.05ID:C8J9R7KI Sub Test0001()
Dim i As Integer
For i = 1 To 2
Dim ary()
MsgBox "ここにブレークポイント設定"
ary = Sheet1.Range(Cells(1, i), Cells(5, i))
Next i
End Sub
A列とB列にあるいずれも5行目までの値を配列に取得するだけのプログラム
For中の一回転目はA列、2回転目はB列
こうやってForの中でaryを宣言し直せば、aryは初期化されると思い込んでたんだけどダメなのな
2回目にMsgBoxで止まったときにaryみるとA列のデータがaryに残ってしまってる
これってメモリ上に残ってて同じ所を参照し直すからなのかな
Eraseすれば消えるからいいんだけど、気づくのに時間かかったわ
こんな初歩的なこと分かってないでよく今まで組んできたもんだ
Dim i As Integer
For i = 1 To 2
Dim ary()
MsgBox "ここにブレークポイント設定"
ary = Sheet1.Range(Cells(1, i), Cells(5, i))
Next i
End Sub
A列とB列にあるいずれも5行目までの値を配列に取得するだけのプログラム
For中の一回転目はA列、2回転目はB列
こうやってForの中でaryを宣言し直せば、aryは初期化されると思い込んでたんだけどダメなのな
2回目にMsgBoxで止まったときにaryみるとA列のデータがaryに残ってしまってる
これってメモリ上に残ってて同じ所を参照し直すからなのかな
Eraseすれば消えるからいいんだけど、気づくのに時間かかったわ
こんな初歩的なこと分かってないでよく今まで組んできたもんだ
413デフォルトの名無しさん
2020/05/31(日) 09:44:52.93ID:8XtoheO9 すんません今時ブロックスコープない方がアレなんで
414デフォルトの名無しさん
2020/05/31(日) 09:49:53.97ID:4iioSPSZ415デフォルトの名無しさん
2020/05/31(日) 10:44:01.62ID:GCI/GpSg416デフォルトの名無しさん
2020/05/31(日) 10:47:02.74ID:GCI/GpSg417デフォルトの名無しさん
2020/05/31(日) 11:53:35.71ID:df9CBrpd >>398
呼び出し元とプロシージャそれぞれ一行ずつ書いてくれよ
呼び出し元とプロシージャそれぞれ一行ずつ書いてくれよ
418デフォルトの名無しさん
2020/05/31(日) 12:34:25.47ID:GcFwCYXw >>412
VBAのDimは書いた場所に関係なく、コード開始時に1回だけ実行される仕様
モジュールの最後に書いても結果は変わらない
Sub Test()
Dim a()
For i = 0 To 9
Dim b()
Next
Dim c()
End Sub
VBAのDimは書いた場所に関係なく、コード開始時に1回だけ実行される仕様
モジュールの最後に書いても結果は変わらない
Sub Test()
Dim a()
For i = 0 To 9
Dim b()
Next
Dim c()
End Sub
419デフォルトの名無しさん
2020/05/31(日) 12:42:20.77ID:C8J9R7KI >>413
あーなるほど
そこを考えるんですか、勉強になりましたわ
ただ、改めて疑問に思ったのは、同じブロックスコープ内で再度宣言してもエラーでないのはどういうことなんだろーとか
Forの中での宣言だと繰り返しといっても宣言部分は無視されるってことかな
ま、同じ事しないようにちゃんとおぼえておこ・・・
>>415
このプログラムだとそうなんだけど
ary = Sheet1.Range(Cells(1, i), Cells(5, i))
この部分が、ある条件を満たした場合のみ代入するっていうコードだとします
んで、条件満たさなかった場合には代入されないため、A列のデータがaryに残っちゃっておかしな事になっちゃってたわけですよ
自分で実際に組んでるコードはも少し複雑なものなので
あーなるほど
そこを考えるんですか、勉強になりましたわ
ただ、改めて疑問に思ったのは、同じブロックスコープ内で再度宣言してもエラーでないのはどういうことなんだろーとか
Forの中での宣言だと繰り返しといっても宣言部分は無視されるってことかな
ま、同じ事しないようにちゃんとおぼえておこ・・・
>>415
このプログラムだとそうなんだけど
ary = Sheet1.Range(Cells(1, i), Cells(5, i))
この部分が、ある条件を満たした場合のみ代入するっていうコードだとします
んで、条件満たさなかった場合には代入されないため、A列のデータがaryに残っちゃっておかしな事になっちゃってたわけですよ
自分で実際に組んでるコードはも少し複雑なものなので
420デフォルトの名無しさん
2020/05/31(日) 12:44:02.11ID:C8J9R7KI421デフォルトの名無しさん
2020/05/31(日) 13:55:17.54ID:W/GxV3g0 >>401
お前は周りにない知識が多少あることに優越感持ってるだけで仕事できる人間の言い分に見えんのよなぁ
お前は周りにない知識が多少あることに優越感持ってるだけで仕事できる人間の言い分に見えんのよなぁ
422デフォルトの名無しさん
2020/05/31(日) 14:13:51.20ID:GcFwCYXw 仕事ができる人なら、コードを書くのに何人時かかりますっていう見積もりをざっくりでいいから依頼主にちゃんと提示する
それで依頼を取り下げるかどうかはクライアントの決めること
想定外のトラブルで納期が遅れそうならホウ・レン・ソウして迷惑をかけないようにする
難しいからって愚痴るのはまったく建設的じゃないし、なんの解決にもならない
それで依頼を取り下げるかどうかはクライアントの決めること
想定外のトラブルで納期が遅れそうならホウ・レン・ソウして迷惑をかけないようにする
難しいからって愚痴るのはまったく建設的じゃないし、なんの解決にもならない
423デフォルトの名無しさん
2020/05/31(日) 15:00:37.19ID:py7qoVDy なんでそんなにかかるの?
どこに時間かかる要素があるの?
やればいいだけでしょ?
○○さんはもっと早かったよ?
次の仕事があるんならそれでいいよ?
どこに時間かかる要素があるの?
やればいいだけでしょ?
○○さんはもっと早かったよ?
次の仕事があるんならそれでいいよ?
424デフォルトの名無しさん
2020/05/31(日) 15:05:53.60ID:ztYbO9r8 報連相つらいよね…プログラムの難しさよりも報連相の方がつらい…
425デフォルトの名無しさん
2020/05/31(日) 16:55:11.56ID:uJxLAScO すみませんド素人ですがご教授下さい。
「あるセルを選択して実行すると選択したセル行のA〜D列以外が全て1.1倍される」
というマクロを組みたいです。
ネットで調べて少し作ろうとしてみましたが
知識がありません。
Sub 倍掛け()
Dim SELU As Range '変数名の絶望的センス名
For Each SELU In Selection
SELU.Value = SELU.Value * 1.1
Next SELU
End Sub
Sub 選択したセルの行全選択()
ActiveCell.EntireRow.Select
End Sub
この2つのプロシージャが何となく使えるのかすらわからないのですが試行錯誤しています。
A〜D列を除外というやり方もわかりません。
すみませんが教えていただけないでしょうか。
「あるセルを選択して実行すると選択したセル行のA〜D列以外が全て1.1倍される」
というマクロを組みたいです。
ネットで調べて少し作ろうとしてみましたが
知識がありません。
Sub 倍掛け()
Dim SELU As Range '変数名の絶望的センス名
For Each SELU In Selection
SELU.Value = SELU.Value * 1.1
Next SELU
End Sub
Sub 選択したセルの行全選択()
ActiveCell.EntireRow.Select
End Sub
この2つのプロシージャが何となく使えるのかすらわからないのですが試行錯誤しています。
A〜D列を除外というやり方もわかりません。
すみませんが教えていただけないでしょうか。
426蟻人間 ◆T6xkBnTXz7B0
2020/05/31(日) 17:39:48.04ID:w6MuXuh+ >>425
Excel for Windows 95で動作確認。
Sub Record1()
Application.Worksheets(1).Select
For I = 5 To 20
For J = 1 To 20
Cells(J, I).Select
ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) * 1.1
Next J
Next
End Sub
Excel for Windows 95で動作確認。
Sub Record1()
Application.Worksheets(1).Select
For I = 5 To 20
For J = 1 To 20
Cells(J, I).Select
ActiveCell.FormulaR1C1 = Val(ActiveCell.FormulaR1C1) * 1.1
Next J
Next
End Sub
428デフォルトの名無しさん
2020/05/31(日) 18:34:56.03ID:Gn3uBA4V >>425
選択した範囲が処理の起点なので、、
Dim r As Range
For Each r In Selection
If r.colunm < 5 Then GoTo nextLoop
If r.Value = "" Then GoTo nextLoop
r.Value = r.Value * 1.1
nextLoop:
Next
こんな感じ?
行全体を対象にしたいみたいだけど、その時はFor文の前に
Selection.EntireRow.Select
を差し込めばいい。
1万列処理されるけど、、、
選択した範囲が処理の起点なので、、
Dim r As Range
For Each r In Selection
If r.colunm < 5 Then GoTo nextLoop
If r.Value = "" Then GoTo nextLoop
r.Value = r.Value * 1.1
nextLoop:
Next
こんな感じ?
行全体を対象にしたいみたいだけど、その時はFor文の前に
Selection.EntireRow.Select
を差し込めばいい。
1万列処理されるけど、、、
429デフォルトの名無しさん
2020/05/31(日) 18:39:34.39ID:Gn3uBA4V >>428
綴りを間違っとった
If r.Column < 5 Then GoTo nextLoop
文字列セルを避けたければ、、以下も追加
If Not IsNumeric(r.Value) Then GoTo nextLoop
綴りを間違っとった
If r.Column < 5 Then GoTo nextLoop
文字列セルを避けたければ、、以下も追加
If Not IsNumeric(r.Value) Then GoTo nextLoop
430デフォルトの名無しさん
2020/05/31(日) 19:13:07.80ID:4iioSPSZ431デフォルトの名無しさん
2020/05/31(日) 21:17:59.30ID:yITbq02Q 馬鹿に馬鹿が答えて滅茶苦茶
簡単な質問だとしゃしゃり出てくるからおかしくなる
簡単な質問だとしゃしゃり出てくるからおかしくなる
432デフォルトの名無しさん
2020/05/31(日) 22:48:28.20ID:6kaO8G32433デフォルトの名無しさん
2020/05/31(日) 22:49:04.73ID:6kaO8G32 >>417
呼び出し元…すみません、知識不足でした…
呼び出し元…すみません、知識不足でした…
434デフォルトの名無しさん
2020/05/31(日) 23:06:33.42ID:2V+gQfrN >>433
馬鹿には無理だと悟れよ、馬鹿
馬鹿には無理だと悟れよ、馬鹿
435デフォルトの名無しさん
2020/06/01(月) 18:21:12.15ID:JWhdLJJl お前もだ
436デフォルトの名無しさん
2020/06/01(月) 18:38:31.30ID:4Uk/Vywe 異動した先輩が作ったマクロに少し追加しようと思って標準モジュール見てみたら
乱れ雪月花
地ずり残月
かすみ二段
パリィ
何これ???と思ったらゲームの技名なのか
見事なプロシージャだけど関連性が全くわからんかった…
乱れ雪月花
地ずり残月
かすみ二段
パリィ
何これ???と思ったらゲームの技名なのか
見事なプロシージャだけど関連性が全くわからんかった…
437デフォルトの名無しさん
2020/06/01(月) 18:48:48.99ID:jizMt7mj Sub 乱れ雪月花
風雪即意付け
月影の太刀
三花仙
End Sub
風雪即意付け
月影の太刀
三花仙
End Sub
438デフォルトの名無しさん
2020/06/01(月) 19:40:30.70ID:o1fpUPSE 取り敢えずマジックナンバーだらけのを保守しろとかいうのはやめてー
セル参照も起点ぐらいは定数宣言しといて欲しい
セル参照も起点ぐらいは定数宣言しといて欲しい
439デフォルトの名無しさん
2020/06/01(月) 19:48:00.59ID:xzpno8fJ 1列目の2行目から下にEXCELファイル名があります。(同一ファイル名あり)
それらを全て開く、処理、閉じるを繰り返すと時間がかかるので、同一ファイル名は一度だけ開いて閉じるをやりたいのですがどしたらいいですか?
1列目をソート
Do until 1列目
???
処理
loop
ファイル名は数字(000001.xlsなどで桁数は同じ)
???の所で開くor閉じるをやりたいのですがどうしたらいいですか?
それらを全て開く、処理、閉じるを繰り返すと時間がかかるので、同一ファイル名は一度だけ開いて閉じるをやりたいのですがどしたらいいですか?
1列目をソート
Do until 1列目
???
処理
loop
ファイル名は数字(000001.xlsなどで桁数は同じ)
???の所で開くor閉じるをやりたいのですがどうしたらいいですか?
440デフォルトの名無しさん
2020/06/01(月) 20:00:55.95ID:Ct20WAoS パリィは草
441デフォルトの名無しさん
2020/06/01(月) 20:10:21.26ID:MDu2hpC8442デフォルトの名無しさん
2020/06/01(月) 20:42:10.79ID:eRBcTATy 重複禁止の処理は連想配列(VBAだとDictionaryオブジェクト)を使うと便利だよ。
既に連想配列に存在するなら何もしない、存在しないなら処理して連想配列に登録する。
Valueに結果を入れておいて、実行結果をシートに出力とかするとカッコイイよ。
既に連想配列に存在するなら何もしない、存在しないなら処理して連想配列に登録する。
Valueに結果を入れておいて、実行結果をシートに出力とかするとカッコイイよ。
443デフォルトの名無しさん
2020/06/01(月) 21:05:54.37ID:Otvtnefa 結果をシートに出すなら配列使わんと重複削除してから開いた方が速くて楽じゃん
444デフォルトの名無しさん
2020/06/01(月) 23:34:24.04ID:5NIHbXOS まだ22歳の学生社長が得た、23億円の「使い道」
あの橋本環奈をCMに使うバイトアプリの雄
https://toyokeizai.net/articles/-/319511
中学時代の車いす生活から、17歳で起業するまで
https://www.advertimes.com/20200130/article306925/
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
https://roboteer-tokyo.com/archives/14840
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life
アプリの視聴率がわかる 高専卒起業家の独創力
https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
https://sogyotecho.jp/glowship-adachi-interview/
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
https://foodfun.jp/archives/3490
あの橋本環奈をCMに使うバイトアプリの雄
https://toyokeizai.net/articles/-/319511
中学時代の車いす生活から、17歳で起業するまで
https://www.advertimes.com/20200130/article306925/
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
https://roboteer-tokyo.com/archives/14840
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life
アプリの視聴率がわかる 高専卒起業家の独創力
https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
https://sogyotecho.jp/glowship-adachi-interview/
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
https://foodfun.jp/archives/3490
445デフォルトの名無しさん
2020/06/02(火) 00:29:20.96ID:hEtyTtKQ 俺ならこうかな。
Sub サンペイグッドカメラ()
どっきりカメラのキシフォート
カメラのドイ
End Sub
Sub サンペイグッドカメラ()
どっきりカメラのキシフォート
カメラのドイ
End Sub
446デフォルトの名無しさん
2020/06/02(火) 00:35:26.89ID:0adtr6kX VBAだしそういう名前面白いかもなw
簡単だけど保守したくないやつは、もう先輩や同僚の連絡先を名前にしようかな
簡単だけど保守したくないやつは、もう先輩や同僚の連絡先を名前にしようかな
447デフォルトの名無しさん
2020/06/02(火) 01:36:20.19ID:rfJHDu9M Sub 馬鹿専用()
馬鹿には無理()
馬鹿は帰れ()
End Sub
馬鹿には無理()
馬鹿は帰れ()
End Sub
448デフォルトの名無しさん
2020/06/02(火) 02:01:31.67ID:cr7Q5ahz Sub 鱸()
鰯()
鰹()
鮪()
End Sub
鰯()
鰹()
鮪()
End Sub
449デフォルトの名無しさん
2020/06/02(火) 02:07:31.79ID:SOkkDiQ6 >>439
Ruby なら重複要素を許さない、集合を使って、
require 'set'
filenames = <<"EOT"
a/foo.txt
a/bar.txt
a/foo.txt
EOT
set = Set.new
filenames.each_line do |filename| # 1行ずつ処理する
filename.chomp! # 末尾の改行を削除する
# 同じ要素は追加できないので、追加できた時だけ、そのファイルを読み込む
p File.read( filename ) if set.add?( filename )
end
Ruby なら重複要素を許さない、集合を使って、
require 'set'
filenames = <<"EOT"
a/foo.txt
a/bar.txt
a/foo.txt
EOT
set = Set.new
filenames.each_line do |filename| # 1行ずつ処理する
filename.chomp! # 末尾の改行を削除する
# 同じ要素は追加できないので、追加できた時だけ、そのファイルを読み込む
p File.read( filename ) if set.add?( filename )
end
450デフォルトの名無しさん
2020/06/02(火) 02:24:02.46ID:cr7Q5ahz >>439
[データ]→[重複の削除] って機能あるけど
[データ]→[重複の削除] って機能あるけど
451デフォルトの名無しさん
2020/06/02(火) 04:12:46.96ID:xDFjMRpH >>439
ファイル名がリストアップされてる列があるなら
そこでまず回して重複排除したファイル名の配列 as Stringをつくればいいだけじゃ
てかその程度も思い浮かばないとなるとプログラミング向いてないような気がするわ
重複排除のプログラムって基礎の基礎でやるよ
便利な機能を使う前に順次・分岐・繰り返しでほぼほぼなんでも出来ちゃうことを学んだ方がいいわ
C言語の勉強するとそういうの鍛えられる感じする
ファイル名がリストアップされてる列があるなら
そこでまず回して重複排除したファイル名の配列 as Stringをつくればいいだけじゃ
てかその程度も思い浮かばないとなるとプログラミング向いてないような気がするわ
重複排除のプログラムって基礎の基礎でやるよ
便利な機能を使う前に順次・分岐・繰り返しでほぼほぼなんでも出来ちゃうことを学んだ方がいいわ
C言語の勉強するとそういうの鍛えられる感じする
452デフォルトの名無しさん
2020/06/02(火) 08:37:46.24ID:ZejDuh3H453デフォルトの名無しさん
2020/06/02(火) 08:39:17.76ID:ZejDuh3H >>386
まあ、プログラマ―としては糞コードの見本を強要されるわけだからねえ。
まあ、プログラマ―としては糞コードの見本を強要されるわけだからねえ。
454デフォルトの名無しさん
2020/06/02(火) 08:41:06.23ID:ZejDuh3H >>398
引数という言葉を調べてみよう。
引数という言葉を調べてみよう。
455デフォルトの名無しさん
2020/06/02(火) 09:53:39.10ID:DG4jD+ms い・・引数
456デフォルトの名無しさん
2020/06/02(火) 10:17:05.52ID:ZKdkos41 いんすう、なの?
勝手に、ひきすう、って読んでた。
勝手に、ひきすう、って読んでた。
457デフォルトの名無しさん
2020/06/02(火) 10:38:01.33ID:HxakEXb6 いんすうだと因数と間違えるから、わざとひきすうと読む慣習
458デフォルトの名無しさん
2020/06/02(火) 11:01:38.32ID:P+GfDheU ソヒキスウブンカイとかあったよねー。
459デフォルトの名無しさん
2020/06/02(火) 11:28:56.48ID:Bxw1Fg+T 淫吸だとエロい言葉に聞こえるからひきすうと読む
460デフォルトの名無しさん
2020/06/02(火) 12:59:58.61ID:86yzZ856 Sub セル2行を結合して出力()
Sheets("雛型").Select
ActiveSheet.Copy
Dim gg As Long, rr As Long
For gg = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1
Rows(gg + 1).Insert
For rr = 5 To 31
Cells(gg, rr).Resize(2).Merge
Next rr
Next gg
HorizontalAlignment = xlCenter
VerticalAlignment = xlCenter
Range("A1") = "2行を結合して出力"
End Sub
すみません、ネットで調べまくってる相変わらずのど初心者です。
セルの行挿入と結合を範囲指定して
2行を結合するのは何とか調べてできたのですが、
「セルの列挿入と結合を繰り返して
2列1行のセルにしたい」
というのができず。。ご教示頂けませんか。
理想は
「セルを2列挿入と結合をして3列1行のセルにする」や
「2列と2行の挿入と結合繰り返して2列2行のセルにする」
など、色々パターンを作りたいのですが。
ネットと入門編の本だとやはり限界を感じます。。
どなかた何卒お願いします。
Sheets("雛型").Select
ActiveSheet.Copy
Dim gg As Long, rr As Long
For gg = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1
Rows(gg + 1).Insert
For rr = 5 To 31
Cells(gg, rr).Resize(2).Merge
Next rr
Next gg
HorizontalAlignment = xlCenter
VerticalAlignment = xlCenter
Range("A1") = "2行を結合して出力"
End Sub
すみません、ネットで調べまくってる相変わらずのど初心者です。
セルの行挿入と結合を範囲指定して
2行を結合するのは何とか調べてできたのですが、
「セルの列挿入と結合を繰り返して
2列1行のセルにしたい」
というのができず。。ご教示頂けませんか。
理想は
「セルを2列挿入と結合をして3列1行のセルにする」や
「2列と2行の挿入と結合繰り返して2列2行のセルにする」
など、色々パターンを作りたいのですが。
ネットと入門編の本だとやはり限界を感じます。。
どなかた何卒お願いします。
461デフォルトの名無しさん
2020/06/02(火) 13:09:54.31ID:YHzZdfxN .resize(1,2).mergeとか
Range(rows(gg+1)rows(gg+2)).insertとか
Range(rows(gg+1)rows(gg+2)).insertとか
462デフォルトの名無しさん
2020/06/02(火) 14:39:08.29ID:cr7Q5ahz セルの結合をマクロでやる設計者ってセンスないね
463デフォルトの名無しさん
2020/06/02(火) 14:42:20.78ID:cr7Q5ahz マクロとVBAな
464デフォルトの名無しさん
2020/06/02(火) 16:30:35.51ID:wladzkcs セル結合はなあ
465デフォルトの名無しさん
2020/06/02(火) 17:14:02.72ID:3pwUYc8f vlookupとセル結合をディスってはじめてexcel使い方として一人前
466デフォルトの名無しさん
2020/06/02(火) 17:30:35.84ID:ZKdkos41 セル結合は帳票イメージでの最終手段。
467デフォルトの名無しさん
2020/06/02(火) 17:36:37.19ID:86yzZ856 セルの結合をする理由は
取引先の提出フォームが客先ごとに
1セルの結合の構成が本当に様々で8種類くらいパターンがあり
元のマクロで出した値の貼り付けが出来ないのが現状です。
なので元のマクロの1行1列のセルの値を
セルの構成を客先のに合わせたシートに出力
そのシートから客先提出フォームに値の貼りつけ
というのをやろうとしています。
取引先の提出フォームが客先ごとに
1セルの結合の構成が本当に様々で8種類くらいパターンがあり
元のマクロで出した値の貼り付けが出来ないのが現状です。
なので元のマクロの1行1列のセルの値を
セルの構成を客先のに合わせたシートに出力
そのシートから客先提出フォームに値の貼りつけ
というのをやろうとしています。
468デフォルトの名無しさん
2020/06/02(火) 17:42:54.46ID:86yzZ856469デフォルトの名無しさん
2020/06/02(火) 17:45:43.97ID:lB7mMLW8 >>468
自分で考えろ
自分で考えろ
470デフォルトの名無しさん
2020/06/02(火) 18:33:10.70ID:0adtr6kX じゃあ8種類のテンプレでよくね
471デフォルトの名無しさん
2020/06/02(火) 18:40:35.01ID:bGVvB1yX 結合したりvlookupとかしたいから、わざわざエクセル使ってるんじゃないの?
472デフォルトの名無しさん
2020/06/02(火) 18:55:17.51ID:R+Y1d9Tj セル結合された部分は別の結合とかできないから
その都度結合解除するとか
行の挿入や削除で表が壊れたり
見えなくなるプロパティがあったり
嫌な思い出しかない
その都度結合解除するとか
行の挿入や削除で表が壊れたり
見えなくなるプロパティがあったり
嫌な思い出しかない
473デフォルトの名無しさん
2020/06/02(火) 19:17:40.08ID:xDFjMRpH Application.OnKey ってプロシージャに引数渡せないのが残念だなぁ
これってキーごとにプロシージャ作らないといけないかね
これってキーごとにプロシージャ作らないといけないかね
474デフォルトの名無しさん
2020/06/02(火) 19:20:48.48ID:ZejDuh3H475デフォルトの名無しさん
2020/06/02(火) 19:31:05.26ID:0+iVbcJA Sub 列挿入()
ActiveSheet.Copy
Dim i As Long
For i = 32 To 8 Step -1
Columns(i).Insert
Next
End Sub
ここまでは何とか、、ってとこです。
後は指定したの行を全部何とか
2列1行のセルに
道のりが遠すぎる…
ActiveSheet.Copy
Dim i As Long
For i = 32 To 8 Step -1
Columns(i).Insert
Next
End Sub
ここまでは何とか、、ってとこです。
後は指定したの行を全部何とか
2列1行のセルに
道のりが遠すぎる…
476デフォルトの名無しさん
2020/06/02(火) 19:38:40.44ID:xX39KyXM データモデルに入れたデータからSQLを使ってシートに出力する方法を教えてください。
ネットになかなか情報がなくて
ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook.Connections("クエリ - パワークエリ名"), Destination:=Range("$A$1")).TableObject
から
.WorkbookConnection.OLEDBConnection.CommandText = "テーブル名" にするとテーブルを出力
.CommandText = Array("EVALUATE CALCULATETABLE('テーブル名' , 'テーブル名'[項目名] =""検索語"" ) ")
.CommandType = xlCmdDAX
のようにするとDAX式で加工したテーブルを出力できるようになりましたが、SQLを使用する方法がわかりません。
ネットになかなか情報がなくて
ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook.Connections("クエリ - パワークエリ名"), Destination:=Range("$A$1")).TableObject
から
.WorkbookConnection.OLEDBConnection.CommandText = "テーブル名" にするとテーブルを出力
.CommandText = Array("EVALUATE CALCULATETABLE('テーブル名' , 'テーブル名'[項目名] =""検索語"" ) ")
.CommandType = xlCmdDAX
のようにするとDAX式で加工したテーブルを出力できるようになりましたが、SQLを使用する方法がわかりません。
477デフォルトの名無しさん
2020/06/03(水) 03:13:14.17ID:4xNyRocT >>475
Sub 列挿入()
ActiveSheet.Copy
Dim i As Long, c As Long, r As Long 'カウント用
Const n As Long = 2 '列挿入, 列マージ数
Const sC As Long = 8, eC As Long = 32 '開始列, 終了列
Const sR As Long = 2, eR As Long = 10 '開始行, 終了行
With Excel.Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
For c = eC To sC Step -1
For i = 1 To n - 1
Columns(c).Insert
Next i
Next c
For c = eC * n To sC Step -n
For r = sR To eR
Cells(r, c).Resize(1, n).Merge
Next r
Next
With Excel.Application
.DisplayAlerts = True
End With
End Sub
Sub 列挿入()
ActiveSheet.Copy
Dim i As Long, c As Long, r As Long 'カウント用
Const n As Long = 2 '列挿入, 列マージ数
Const sC As Long = 8, eC As Long = 32 '開始列, 終了列
Const sR As Long = 2, eR As Long = 10 '開始行, 終了行
With Excel.Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
For c = eC To sC Step -1
For i = 1 To n - 1
Columns(c).Insert
Next i
Next c
For c = eC * n To sC Step -n
For r = sR To eR
Cells(r, c).Resize(1, n).Merge
Next r
Next
With Excel.Application
.DisplayAlerts = True
End With
End Sub
478デフォルトの名無しさん
2020/06/03(水) 03:29:44.75ID:4xNyRocT あっ行別の列マージならRange.Merge Across:=Trueってのがあるのか初めて知ったわ
479デフォルトの名無しさん
2020/06/03(水) 17:16:57.27ID:AwTWg+pQ すいません。関数を使って集計する方法を教えていただけないでしょうか。
index matchの組み合わせもしくは、sumifもしくはindex match sumifの複合で表示させたいです。
画像の出荷と書かれたセルに関数を入れて集計したいです。
集計は参照シートの黄色で書かれた「販売+その他出荷」の合計を表示したいです。
sumifでは縦の計算になってしまい、横の足し算が出来ない印象です。
上の数字はmatchを使った際の引用条件になると思い入れました。
説明わかりづらくてすいません。関数を教えていただけないでしょうか。
具体例のエクセルは簡単に書いてますが、実際に書くエクセルはデータが膨大なものです。
なぜかindexもうまく引用できていませんでした。
https://d.kuku.lu/ca513f39a8
index matchの組み合わせもしくは、sumifもしくはindex match sumifの複合で表示させたいです。
画像の出荷と書かれたセルに関数を入れて集計したいです。
集計は参照シートの黄色で書かれた「販売+その他出荷」の合計を表示したいです。
sumifでは縦の計算になってしまい、横の足し算が出来ない印象です。
上の数字はmatchを使った際の引用条件になると思い入れました。
説明わかりづらくてすいません。関数を教えていただけないでしょうか。
具体例のエクセルは簡単に書いてますが、実際に書くエクセルはデータが膨大なものです。
なぜかindexもうまく引用できていませんでした。
https://d.kuku.lu/ca513f39a8
480デフォルトの名無しさん
2020/06/03(水) 17:19:07.42ID:bl/wSmIk >>479
死ねよ、ここは何のスレかわかっているか?
死ねよ、ここは何のスレかわかっているか?
481デフォルトの名無しさん
2020/06/03(水) 17:31:05.68ID:AwTWg+pQ すれ違いでしたか。。 別のスレで質問してみます
失礼します
失礼します
482デフォルトの名無しさん
2020/06/03(水) 18:58:22.75ID:ajKAwYcj >>481
説明が下手な質問には答えられない
説明が下手な質問には答えられない
483デフォルトの名無しさん
2020/06/03(水) 19:02:55.47ID:4xNyRocT484デフォルトの名無しさん
2020/06/03(水) 21:04:01.49ID:WzEARBto 前にも少し聞いたけど上級者はVBAどうやって作ってくもん?
そこそこボリュームのあるマクロを素人ながら作ってるんだけど
・標準モジュールにオブジェクト名付けて
そこに同じ名前のプロシージャを1つ作る
ユーザーフォームのボタンに
プロージャ名を2つや3つ並べたり
とにかくボタンに割り当ててく
コードの表示見ると凄いシンプルに見えるけど
標準モジュールが30個とかあるんだが…
自己流だと全然だめねこれ
そこそこボリュームのあるマクロを素人ながら作ってるんだけど
・標準モジュールにオブジェクト名付けて
そこに同じ名前のプロシージャを1つ作る
ユーザーフォームのボタンに
プロージャ名を2つや3つ並べたり
とにかくボタンに割り当ててく
コードの表示見ると凄いシンプルに見えるけど
標準モジュールが30個とかあるんだが…
自己流だと全然だめねこれ
485デフォルトの名無しさん
2020/06/03(水) 21:12:23.58ID:eXcAe8GC そういうのは言語関係ない
上級者のコード読むなりプログラミング技法の初歩とかを勉強せえ
上級者のコード読むなりプログラミング技法の初歩とかを勉強せえ
486デフォルトの名無しさん
2020/06/03(水) 21:16:06.03ID:jxQ4kFWw 上級者じゃないんでわからんが
数こなしていくうちに上達するんじゃね
数こなしていくうちに上達するんじゃね
487デフォルトの名無しさん
2020/06/03(水) 22:45:33.09ID:DFbqrKTL ネットで勉強してる初心者以前のレベルだけど
変数をiで宣言してるサイトが結構多いけど
テンプレ的な変数名なの?何かの略字?
変数をiで宣言してるサイトが結構多いけど
テンプレ的な変数名なの?何かの略字?
488蟻人間 ◆T6xkBnTXz7B0
2020/06/03(水) 22:54:44.44ID:fRs9+Xkd integer
489デフォルトの名無しさん
2020/06/03(水) 22:55:14.42ID:1Bet+/qH490デフォルトの名無しさん
2020/06/03(水) 22:58:16.07ID:k+INKoSh テーブル(ListObject)の指定列に計算結果値をLoopで書き込む処理を作ったんだけど、
ひどく遅延します。事象の原因と対策わかる方いたら教えてください。
・(同一シートの)テーブルの枠外だと同じ行数でも瞬時に終わります。
・計算結果じゃなくて 1 を埋め込むのでも遅い。
・再計算Off
・ためしにEnableEvents = false もやってみたけど効果なし。
3000行くらいなんですが、しばらく帰ってこない感じ。
結局式埋込に変えたんだけど、その場合だと5〜6秒くらい。
テーブルなんてそんなもん、ということであればそう認識します。
詳しい方教えてください。
ひどく遅延します。事象の原因と対策わかる方いたら教えてください。
・(同一シートの)テーブルの枠外だと同じ行数でも瞬時に終わります。
・計算結果じゃなくて 1 を埋め込むのでも遅い。
・再計算Off
・ためしにEnableEvents = false もやってみたけど効果なし。
3000行くらいなんですが、しばらく帰ってこない感じ。
結局式埋込に変えたんだけど、その場合だと5〜6秒くらい。
テーブルなんてそんなもん、ということであればそう認識します。
詳しい方教えてください。
491デフォルトの名無しさん
2020/06/03(水) 22:59:26.99ID:uWfzdzS4 >>484
モジュールが増えるのは、
他に流用するからとか、
スクロールが面倒だからとか、
そんな理由だと思うけど。
宣言は一番上派、使用する直前派。
参照設定派、CreateObject(xxx)派、
If a = True Then派、If a Then派、
色々だから気にすんなと。
モジュールが増えるのは、
他に流用するからとか、
スクロールが面倒だからとか、
そんな理由だと思うけど。
宣言は一番上派、使用する直前派。
参照設定派、CreateObject(xxx)派、
If a = True Then派、If a Then派、
色々だから気にすんなと。
492デフォルトの名無しさん
2020/06/03(水) 23:02:38.52ID:k+INKoSh >>489
iteratorが語源かと思った。
iteratorが語源かと思った。
493デフォルトの名無しさん
2020/06/03(水) 23:03:56.76ID:LXJ+6sS7 DEFINT A-Z
494デフォルトの名無しさん
2020/06/03(水) 23:35:44.50ID:6MdsocRT ループ変数にはiもよく使うけど、rとかcも割と使う。
列と行を入れ子にしてループ処理する時は、こちらの方が分かりやすい。
列と行を入れ子にしてループ処理する時は、こちらの方が分かりやすい。
495デフォルトの名無しさん
2020/06/03(水) 23:40:14.49ID:K30dfupm496デフォルトの名無しさん
2020/06/04(木) 00:05:55.74ID:k3k6AIFZ 実際の慣例ではどうなのか知らないが、i〜tまでを使うって教えられた
intのtまでってことで
まあ大抵使ってもi,j,kぐらいだと思うが
intのtまでってことで
まあ大抵使ってもi,j,kぐらいだと思うが
497デフォルトの名無しさん
2020/06/04(木) 00:09:42.42ID:L9xk6UQ0 視認性が悪いから、j とか l とか使いたくない。
なので、 i, k, n, とか適当に飛ばして使ってる。
なので、 i, k, n, とか適当に飛ばして使ってる。
498デフォルトの名無しさん
2020/06/04(木) 00:09:53.27ID:OnK1RXVm 自分は最大nまで使うよ。
i、j、k、l、m、n
i、j、k、l、m、n
499デフォルトの名無しさん
2020/06/04(木) 00:14:11.64ID:L9xk6UQ0500デフォルトの名無しさん
2020/06/04(木) 01:00:45.24ID:BD433+5i すみません、教えてください。<br>
caseの条件を変数で設定していると条件に一致しなくてelseに流れてしまいます。<br>
ベタ打ちで条件を記載した場合は、正しく処理へ流れるのですが・・・<br>
sub テスト() <br>
Dim a As String <br>
Dim temp As String
a = "みかん"
temp = "りんご"", ""みかん" 'ここはチェックボックスの選択によって可変にする予定
Select Case a
Case temp
Msgbox("冬")
Case Else
Msgbox("冬以外")
End Select
End sub
caseの条件を変数で設定していると条件に一致しなくてelseに流れてしまいます。<br>
ベタ打ちで条件を記載した場合は、正しく処理へ流れるのですが・・・<br>
sub テスト() <br>
Dim a As String <br>
Dim temp As String
a = "みかん"
temp = "りんご"", ""みかん" 'ここはチェックボックスの選択によって可変にする予定
Select Case a
Case temp
Msgbox("冬")
Case Else
Msgbox("冬以外")
End Select
End sub
501500
2020/06/04(木) 01:02:03.80ID:BD433+5i <BR>は誤って記載したので無視してください。
すみません。
すみません。
502デフォルトの名無しさん
2020/06/04(木) 01:05:29.38ID:bxYszK7T ダブルクォーテーション大好きなんだな
503デフォルトの名無しさん
2020/06/04(木) 01:09:25.97ID:22WZQRcv504デフォルトの名無しさん
2020/06/04(木) 01:47:41.43ID:OTCVkkK8 馬鹿の特徴
教えて、助けて等で始まる書き込みをする
教えて、助けて等で始まる書き込みをする
505デフォルトの名無しさん
2020/06/04(木) 02:18:53.76ID:oqMXr6z+506デフォルトの名無しさん
2020/06/04(木) 03:10:03.32ID:e1eCmfnY >>496
俺だけかな i1,i2,i3 とか、 iX,,iY, iCnt, iLoop, iStep みたいに使う
俺だけかな i1,i2,i3 とか、 iX,,iY, iCnt, iLoop, iStep みたいに使う
507デフォルトの名無しさん
2020/06/04(木) 03:52:02.37ID:e1eCmfnY508デフォルトの名無しさん
2020/06/04(木) 07:06:03.13ID:iR1nViON >>489
Fortranが始まりが正解
Fortranが始まりが正解
509デフォルトの名無しさん
2020/06/04(木) 08:16:07.75ID:i/KeU7gc ループのiはindexのiかと思ってたわ
for(i=0;i<10;i++)
value[i] = 〜〜的な
for(i=0;i<10;i++)
value[i] = 〜〜的な
510デフォルトの名無しさん
2020/06/04(木) 10:24:37.12ID:lE9Ts1od C列が変数aと同じ値で、かつD列が変数bと同じ値で、かつE列が変数cと同じ値の各行で
Z列(整数)が最大値の行の行番号を変数iに代入する方法を教えてください
Dim r As Long,i As Long
Dim a As String, b As String, c As String
For r = 5 to lsr
If Cells(r,3) = a And
Cells(r,4) = b And
Cells(r,5) = c Then
Rows(r).???
End If
Next cnt
i = Application.WorksheetFunction.Max(???)
Z列(整数)が最大値の行の行番号を変数iに代入する方法を教えてください
Dim r As Long,i As Long
Dim a As String, b As String, c As String
For r = 5 to lsr
If Cells(r,3) = a And
Cells(r,4) = b And
Cells(r,5) = c Then
Rows(r).???
End If
Next cnt
i = Application.WorksheetFunction.Max(???)
511デフォルトの名無しさん
2020/06/04(木) 12:04:02.17ID:0kTawYgE >>510
Z列の"暫定"最大値を保持する変数を使います。
Dim r As Long, i As Long
Dim a As String, b As String, c As String
Dim Z_v As Long '追加部分
Dim lsr As Long '定義漏れですよ
lsr = 処理範囲の最終行をセット
Z_v = 0 ' Z列の最大値が負になりそうなら-9999999999などとしておく
For r = 5 to lsr
If Cells(r, 3).Value = a And _
Cells(r, 4).Value = b And _
Cells(r, 5).Value Then
If Cells(r, "Z").Value > Z_v Then ' 暫定最大値を超えたら
Z_v = Cells(r, "Z").Value ' 暫定最大値を更新
i = r ' 行位置も更新
End If
End If
Next
最大値となる行が複数あった場合は、最初の行位置が i の値となります。
Z列の"暫定"最大値を保持する変数を使います。
Dim r As Long, i As Long
Dim a As String, b As String, c As String
Dim Z_v As Long '追加部分
Dim lsr As Long '定義漏れですよ
lsr = 処理範囲の最終行をセット
Z_v = 0 ' Z列の最大値が負になりそうなら-9999999999などとしておく
For r = 5 to lsr
If Cells(r, 3).Value = a And _
Cells(r, 4).Value = b And _
Cells(r, 5).Value Then
If Cells(r, "Z").Value > Z_v Then ' 暫定最大値を超えたら
Z_v = Cells(r, "Z").Value ' 暫定最大値を更新
i = r ' 行位置も更新
End If
End If
Next
最大値となる行が複数あった場合は、最初の行位置が i の値となります。
512デフォルトの名無しさん
2020/06/04(木) 12:13:10.50ID:0kTawYgE >>511 の修正
Cells(r, 5).Value Then
の行は
Cells(r, 5).Value = c Then です
Cells(r, 5).Value Then
の行は
Cells(r, 5).Value = c Then です
514デフォルトの名無しさん
2020/06/04(木) 14:32:12.42ID:L9xk6UQ0 >>503
レスありがとう。
どうも同時に開いているブックに大量の関数が配置されているとListObject内でLoop入力時に遅延するみたい。再計算Offでも。
まっさらのブックにテーブル1個作ってLoop書き込みしたら瞬時だった。
そこに関数を多く含むブックを同時に開くことで、上記のテーブルで遅延が発生。特に自作関数が影響大きいみたい。
追加で開いたブックからシートを一つずつ削除→計測を繰り返したら、少しずつ早くなって、最終的に瞬時になった。
数行ならパラパラッって感じで気にしなくていいんだろうけど行数が多いとかなり待たされる。
ちなみに対象のテーブルを「範囲に変換」するとどんだけ関数を含んでいようが瞬時に書き込まれる。
こんなもんだと思うしかないのかもだけど、再計算Offでも影響を受けるのが納得いかない。
Win7 on vmwareな環境で試したので自宅のWin10でも試してみる。
レスありがとう。
どうも同時に開いているブックに大量の関数が配置されているとListObject内でLoop入力時に遅延するみたい。再計算Offでも。
まっさらのブックにテーブル1個作ってLoop書き込みしたら瞬時だった。
そこに関数を多く含むブックを同時に開くことで、上記のテーブルで遅延が発生。特に自作関数が影響大きいみたい。
追加で開いたブックからシートを一つずつ削除→計測を繰り返したら、少しずつ早くなって、最終的に瞬時になった。
数行ならパラパラッって感じで気にしなくていいんだろうけど行数が多いとかなり待たされる。
ちなみに対象のテーブルを「範囲に変換」するとどんだけ関数を含んでいようが瞬時に書き込まれる。
こんなもんだと思うしかないのかもだけど、再計算Offでも影響を受けるのが納得いかない。
Win7 on vmwareな環境で試したので自宅のWin10でも試してみる。
515デフォルトの名無しさん
2020/06/04(木) 15:52:15.99ID:MXeQjX7b おれ、昔は i , j ばかり使ってたけど、最近は回す配列の名前を反映した変数を使ってる
Forブロックが単独で存在するならいいんだけど、if や 他のForブロックと組み合わさって
階層構造になってると、だいぶあとになってメンテするときに理解が遅れる
Forブロックが単独で存在するならいいんだけど、if や 他のForブロックと組み合わさって
階層構造になってると、だいぶあとになってメンテするときに理解が遅れる
516デフォルトの名無しさん
2020/06/04(木) 16:42:33.52ID:9nIeytil いいね
他にもループ内の処理をそのまま関数にしてしまう方法もある
コメントを書かなくても処理の意味を関数名として記述できるし、再利用性も高まる。
おまけとしてVBAの構文にはないcontinue(処理を中断して次のループへ入る)が行える。
もしくは再帰関数を定義してfor文自体を無くすという凝った方法もある。
他にもループ内の処理をそのまま関数にしてしまう方法もある
コメントを書かなくても処理の意味を関数名として記述できるし、再利用性も高まる。
おまけとしてVBAの構文にはないcontinue(処理を中断して次のループへ入る)が行える。
もしくは再帰関数を定義してfor文自体を無くすという凝った方法もある。
517デフォルトの名無しさん
2020/06/04(木) 18:37:05.61ID:08KHEEC1 データモデルに入れたデータからSQLを使ってシートに出力する方法を教えてください。
ネットになかなか情報がなくて
ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook.Connections("クエリ - パワークエリ名"), Destination:=Range("$A$1")).TableObject
から
.WorkbookConnection.OLEDBConnection.CommandText = "テーブル名" にするとテーブルを出力
.CommandText = Array("EVALUATE CALCULATETABLE('テーブル名' , 'テーブル名'[項目名] =""検索語"" ) ")
.CommandType = xlCmdDAX
のようにするとDAX式で加工したテーブルを出力できるようになりましたが、SQLを使用する方法がわかりません。
ネットになかなか情報がなくて
ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook.Connections("クエリ - パワークエリ名"), Destination:=Range("$A$1")).TableObject
から
.WorkbookConnection.OLEDBConnection.CommandText = "テーブル名" にするとテーブルを出力
.CommandText = Array("EVALUATE CALCULATETABLE('テーブル名' , 'テーブル名'[項目名] =""検索語"" ) ")
.CommandType = xlCmdDAX
のようにするとDAX式で加工したテーブルを出力できるようになりましたが、SQLを使用する方法がわかりません。
518デフォルトの名無しさん
2020/06/04(木) 19:00:14.86ID:OTCVkkK8 馬鹿ではなさそうだが、しつこい教えてクレクレに呆れる
ググれよ
ググれよ
519デフォルトの名無しさん
2020/06/04(木) 19:01:01.58ID:gQJ1UXfv >ネットになかなか情報がなくて
逆にそれを探し当てる方が難しいと思うんだが・・・。
とりあえず、マクロを記録しながらMSクエリを操作すれば答えが出ると思う。
逆にそれを探し当てる方が難しいと思うんだが・・・。
とりあえず、マクロを記録しながらMSクエリを操作すれば答えが出ると思う。
520デフォルトの名無しさん
2020/06/04(木) 19:03:34.01ID:gQJ1UXfv >パワークエリ名
あ、2016以上か。
パワークエリがあるせいで、MSクエリにたどり着かなかったということか。
あ、2016以上か。
パワークエリがあるせいで、MSクエリにたどり着かなかったということか。
521デフォルトの名無しさん
2020/06/04(木) 19:43:02.85ID:ZOeL7/nf >>516
同じ処理を関数にするのはよくあることだけど、同じ処理を括るよりは意味合いで括る方が上策だと思う。
適切に関数に分けていれば、そもそもそんなに入れ子にならんだろう。
再起なんて、それこそ意味合いで自然に出来上がるもんで、無理して作るもんじゃねえと思うんだが。
同じ処理を関数にするのはよくあることだけど、同じ処理を括るよりは意味合いで括る方が上策だと思う。
適切に関数に分けていれば、そもそもそんなに入れ子にならんだろう。
再起なんて、それこそ意味合いで自然に出来上がるもんで、無理して作るもんじゃねえと思うんだが。
522デフォルトの名無しさん
2020/06/04(木) 22:08:56.53ID:uauxSmqO Sub セル構成を2行3列に()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
j = 2 '←ここで何列おき
Set rng = ActiveSheet.UsedRange
For i = rng.Columns.Count To 8 Step -1
rng.Cells(10,i).Resize(10,j).EntireColumn.Insert Next Set rng = Nothing
Range("G10", "I510").Merge Across:=True
Range("J10", "L510").Merge Across:=True
Range("M10", "O510").MergeAcross:=True
Range("P10", "R510").Merge Across:=True
Range("S10", "U510").Merge Across:=True
Range("V10", "X510").Merge Across:=True
Range("Y10", "AA510").MergeAcross:=True
Range("AB10", "AD510").Merge Across:=True
Range("AE10", "AG510").Merge Across:=True
Range("AH10", "AJ510").Merge Across:=True
Application.DisplayAlerts = False
Application.ScreenUpdating = False
j = 2 '←ここで何列おき
Set rng = ActiveSheet.UsedRange
For i = rng.Columns.Count To 8 Step -1
rng.Cells(10,i).Resize(10,j).EntireColumn.Insert Next Set rng = Nothing
Range("G10", "I510").Merge Across:=True
Range("J10", "L510").Merge Across:=True
Range("M10", "O510").MergeAcross:=True
Range("P10", "R510").Merge Across:=True
Range("S10", "U510").Merge Across:=True
Range("V10", "X510").Merge Across:=True
Range("Y10", "AA510").MergeAcross:=True
Range("AB10", "AD510").Merge Across:=True
Range("AE10", "AG510").Merge Across:=True
Range("AH10", "AJ510").Merge Across:=True
523デフォルトの名無しさん
2020/06/04(木) 22:10:21.75ID:uauxSmqO Range("AK10", "AM510").MergeAcross:=True
Range("AN10", "AP510").MergeAcross:=True
Range("AQ10", "AS510").Merge Across:=True
Range("AT10", "AV510").Merge Across:=True
Range("AW10", "AY510").MergeAcross:=True
Range("AZ10", "BB510").Merge Across:=True
Range("BC10", "BE510").Merge Across:=True
Range("BF10", "BH510").Merge Across:=True
Range("BI10", "BK510").Merge Across:=True
Range("BL10", "BN510").Merge Across:=True
Range("BO10", "BQ510").MergeAcross:=True
Range("BR10", "BT510").Merge Across:=True
Range("BU10", "BW510").MergeAcross:=True
Range("BX10", "BZ510").Merge Across:=True
Range("CA10", "CC510").MergeAcross:=True
Dim po As Long, ro As Long
For gg = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1
Rows(po + 1).Insert
For ro = 5 To 79
Cells(po, ro).Resize(2).Merge
Next ro Next po
HorizontalAlignment = xlCenter
VerticalAlignment = xlCenter
Application.DisplayAlerts = True
End Sub
VBAの勉強すらしてない俺が10個くらいのサイトからパクってつなげて一応希望通り動いた
setとかレンジ型とか意味わからんわ…
Range("AN10", "AP510").MergeAcross:=True
Range("AQ10", "AS510").Merge Across:=True
Range("AT10", "AV510").Merge Across:=True
Range("AW10", "AY510").MergeAcross:=True
Range("AZ10", "BB510").Merge Across:=True
Range("BC10", "BE510").Merge Across:=True
Range("BF10", "BH510").Merge Across:=True
Range("BI10", "BK510").Merge Across:=True
Range("BL10", "BN510").Merge Across:=True
Range("BO10", "BQ510").MergeAcross:=True
Range("BR10", "BT510").Merge Across:=True
Range("BU10", "BW510").MergeAcross:=True
Range("BX10", "BZ510").Merge Across:=True
Range("CA10", "CC510").MergeAcross:=True
Dim po As Long, ro As Long
For gg = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1
Rows(po + 1).Insert
For ro = 5 To 79
Cells(po, ro).Resize(2).Merge
Next ro Next po
HorizontalAlignment = xlCenter
VerticalAlignment = xlCenter
Application.DisplayAlerts = True
End Sub
VBAの勉強すらしてない俺が10個くらいのサイトからパクってつなげて一応希望通り動いた
setとかレンジ型とか意味わからんわ…
524デフォルトの名無しさん
2020/06/04(木) 22:13:08.78ID:uauxSmqO For po = Cells(Rows.Count, "E").End(xlUp).Row To 11 Step -1
ここはこうだったな俺の変数癖だわ
なんかもう難しすぎて勉強するよりネットで検索してパクって繋げたほうが楽な気がする
39歳からVBA覚えるって脳みそがついていかんわ
ここはこうだったな俺の変数癖だわ
なんかもう難しすぎて勉強するよりネットで検索してパクって繋げたほうが楽な気がする
39歳からVBA覚えるって脳みそがついていかんわ
525デフォルトの名無しさん
2020/06/04(木) 22:15:04.15ID:k3k6AIFZ そんな報告いらん
自分の日記スレでも立てればいい
自分の日記スレでも立てればいい
526デフォルトの名無しさん
2020/06/04(木) 22:15:05.91ID:OTCVkkK8 隙あらば馬鹿が日記を書き込む
527デフォルトの名無しさん
2020/06/04(木) 22:19:18.86ID:uauxSmqO 隙あらば馬鹿って言いにきてんの?
定期的に馬鹿としか書いてないけど
定期的に馬鹿としか書いてないけど
528デフォルトの名無しさん
2020/06/04(木) 22:22:05.20ID:i/KeU7gc そうして精神を保ってるとでも思っておこう
529デフォルトの名無しさん
2020/06/04(木) 22:43:14.91ID:OTCVkkK8 >>527
馬鹿は黙っていろよ
馬鹿は黙っていろよ
530デフォルトの名無しさん
2020/06/04(木) 22:57:09.20ID:nxAuSZLn セルにコメント挿入して中の文字色を一部だけ変えれる事って出来ますか?
strTxt=111111(vbtab)223(vbtab)8975
例えばこんな文字列の223だけ赤色、それ以外は黒色。
strTxt=111111(vbtab)223(vbtab)8975
例えばこんな文字列の223だけ赤色、それ以外は黒色。
531デフォルトの名無しさん
2020/06/04(木) 22:59:22.67ID:c/xPJE8L >>527
お前の書き込みは馬鹿の自己満足以外の何物でもないぞ
お前の書き込みは馬鹿の自己満足以外の何物でもないぞ
532デフォルトの名無しさん
2020/06/05(金) 00:25:19.46ID:fHeju+Td >>530
Cells(1, 1).AddComment "あいうえおかきくけこさしすせそ"
Dim c As Excel.Characters
Set c = Cells(1, 1).Comment.Shape.TextFrame.Characters(2, 10)
c.Font.ColorIndex = 3
例えばこれだと、コメントを追加して2文字目から10文字のフォント色を色番号3=赤に変える
という処理になるよ。
他にもフォント,太字斜体,サイズとか、fontクラスのものなら何でも変えれるね。
処理的には変更開始と文字数をどう特定するかだけど頑張ってね
Cells(1, 1).AddComment "あいうえおかきくけこさしすせそ"
Dim c As Excel.Characters
Set c = Cells(1, 1).Comment.Shape.TextFrame.Characters(2, 10)
c.Font.ColorIndex = 3
例えばこれだと、コメントを追加して2文字目から10文字のフォント色を色番号3=赤に変える
という処理になるよ。
他にもフォント,太字斜体,サイズとか、fontクラスのものなら何でも変えれるね。
処理的には変更開始と文字数をどう特定するかだけど頑張ってね
533デフォルトの名無しさん
2020/06/05(金) 00:27:45.38ID:2CjtUfu9 >>530
comment.shape.textFrame.characters
comment.shape.textFrame.characters
534デフォルトの名無しさん
2020/06/05(金) 00:50:59.98ID:8UrD2y10 39歳で限界とか。元々能力が低いとしか。
535デフォルトの名無しさん
2020/06/05(金) 05:51:53.87ID:td6kQI8l >>534
なんだと、このハゲ!
なんだと、このハゲ!
536デフォルトの名無しさん
2020/06/05(金) 06:27:32.36ID:YMz2fC5g >>522
一応解説すると、、、
値にはいろんな型があるけど、
文字リテラル(例:"Hello")
数値リテラル(例:123)
日付リテラル(例:#2020/6/5#)
真偽値 (例:True)
上記で構成される配列(例:Array("月","火","水") )
これらは(またはこれらの値を返す式)はイコールだけで変数にぶっ込めるけど、
これら以外はすべてオブジェクトと見なされるので、
Set 左辺=右辺
の記述で変数に代入する必要がある。
例えば、ブック、シート、といったものはすべてオブジェクト扱い。
もちろんセル範囲(Range)もオブジェクトなので、Setが必要。
範囲オブジェクトを返すには Range("アドレス記述")で表せるけどこれだと
示してくれた例のように全部書き出す必要がありコードが冗長になる。
そんなときはCells(行,列)の記述で範囲オブジェクトを返すとLoop処理で
簡潔に記述できる。
Cells(行,列)だと1セルしか表せないからRangeと組み合わせて
Range(Cells(行,列),Cells(行,列))
みたいに記述すれば指定範囲を表現できる。
または、
Cells(行,列).Resize(500,3)
みたいに記述すれば範囲サイズを拡張できる。
あとはForで行、列の変数をうまうコントロールすればOK.
理解の助けになるといいけど、、
一応解説すると、、、
値にはいろんな型があるけど、
文字リテラル(例:"Hello")
数値リテラル(例:123)
日付リテラル(例:#2020/6/5#)
真偽値 (例:True)
上記で構成される配列(例:Array("月","火","水") )
これらは(またはこれらの値を返す式)はイコールだけで変数にぶっ込めるけど、
これら以外はすべてオブジェクトと見なされるので、
Set 左辺=右辺
の記述で変数に代入する必要がある。
例えば、ブック、シート、といったものはすべてオブジェクト扱い。
もちろんセル範囲(Range)もオブジェクトなので、Setが必要。
範囲オブジェクトを返すには Range("アドレス記述")で表せるけどこれだと
示してくれた例のように全部書き出す必要がありコードが冗長になる。
そんなときはCells(行,列)の記述で範囲オブジェクトを返すとLoop処理で
簡潔に記述できる。
Cells(行,列)だと1セルしか表せないからRangeと組み合わせて
Range(Cells(行,列),Cells(行,列))
みたいに記述すれば指定範囲を表現できる。
または、
Cells(行,列).Resize(500,3)
みたいに記述すれば範囲サイズを拡張できる。
あとはForで行、列の変数をうまうコントロールすればOK.
理解の助けになるといいけど、、
537デフォルトの名無しさん
2020/06/05(金) 06:58:05.99ID:Lq81HhXC >>535
年齢を言い訳に使ってる時点で人として残念な人でしょ
年齢を言い訳に使ってる時点で人として残念な人でしょ
538デフォルトの名無しさん
2020/06/05(金) 07:40:51.89ID:oZqvF/U1 まったく最近の若者は……
539デフォルトの名無しさん
2020/06/05(金) 08:25:59.68ID:KlfmBaSN 勉強の話が出てるけど上級者だって全てを覚えているわけじゃない。
>>532のCharactersの話だって、取りあえずこの後に"("を打って見れば説明が出てくるんで、そこから推理してる。
そして推理したら実際に別でテストする。
上手く動いたら、うっすら何となく覚える。
うっすら覚えてる場合は次回も"("打ってからの推理から始まる。
それで問題は起こらないし、何回か繰り返せば完全に覚える。
丸暗記は大変だし結果的に覚えない。
>>532のCharactersの話だって、取りあえずこの後に"("を打って見れば説明が出てくるんで、そこから推理してる。
そして推理したら実際に別でテストする。
上手く動いたら、うっすら何となく覚える。
うっすら覚えてる場合は次回も"("打ってからの推理から始まる。
それで問題は起こらないし、何回か繰り返せば完全に覚える。
丸暗記は大変だし結果的に覚えない。
540デフォルトの名無しさん
2020/06/05(金) 10:36:23.39ID:fHeju+Td いや何となく覚えてたけど
541デフォルトの名無しさん
2020/06/05(金) 12:39:12.93ID:tnz6CDPA そのなんとなくでいんじゃねって話でなくて?
542デフォルトの名無しさん
2020/06/05(金) 18:45:39.76ID:IG+dLk9+ >>524
そろそろ引退したらどうですか?
そろそろ引退したらどうですか?
543デフォルトの名無しさん
2020/06/05(金) 19:01:37.97ID:7QZKDprx >>521
入れ子時の対策として言っただけで、普通は入れ子になりづらいとか急に言われても困る
あと意識せずに自然に再帰になるとかマ?
関数型以外じゃ意識しないと普通できないだろw
やるとしても配列の畳み込みメソッドぐらいなんでは?
入れ子時の対策として言っただけで、普通は入れ子になりづらいとか急に言われても困る
あと意識せずに自然に再帰になるとかマ?
関数型以外じゃ意識しないと普通できないだろw
やるとしても配列の畳み込みメソッドぐらいなんでは?
544デフォルトの名無しさん
2020/06/05(金) 20:18:14.26ID:KlfmBaSN >>543
例えば初めて再起を使った時に再起なるものなんか知らなかった。
単純に自分を呼び出せば良くね?と思って書いたら再起だった。
再起なるものを知った後でも、基本的に自分を呼び出せば良いじゃんと思う場面が殆ど。
例えば、パスを与えたらそのフォルダの下のファイルやフォルダ名を全部列挙するという関数を考える。
列挙してる中でフォルダ名取得したら、そのフォルダ名で自分を呼び出せば良いわけだ。
そうすればその呼び出しで更に配下の列挙が得られるんだから。
もっとも、このファイル列挙では最初はDir関数グローバルな動きをすると知らなかったので上手く行かなかったけど。
例えば初めて再起を使った時に再起なるものなんか知らなかった。
単純に自分を呼び出せば良くね?と思って書いたら再起だった。
再起なるものを知った後でも、基本的に自分を呼び出せば良いじゃんと思う場面が殆ど。
例えば、パスを与えたらそのフォルダの下のファイルやフォルダ名を全部列挙するという関数を考える。
列挙してる中でフォルダ名取得したら、そのフォルダ名で自分を呼び出せば良いわけだ。
そうすればその呼び出しで更に配下の列挙が得られるんだから。
もっとも、このファイル列挙では最初はDir関数グローバルな動きをすると知らなかったので上手く行かなかったけど。
545デフォルトの名無しさん
2020/06/05(金) 20:57:20.30ID:H0L/fXZL 再起って何だろう?
546デフォルトの名無しさん
2020/06/05(金) 21:05:54.74ID:rCWyQTVZ >>542
職場の業務というか海外含めて複数の支部で使われてるから出てくるデータを瞬時に処理できるコードをここで3つ教わってしまったからね
もうVBA続けるしかないわ
textデータにプローシージャコピーしてクラウドに保存してあるレベルの
職場の業務というか海外含めて複数の支部で使われてるから出てくるデータを瞬時に処理できるコードをここで3つ教わってしまったからね
もうVBA続けるしかないわ
textデータにプローシージャコピーしてクラウドに保存してあるレベルの
547デフォルトの名無しさん
2020/06/05(金) 21:08:38.53ID:cCPYycaK >>545
たぶん再帰の変換ミスだろ
たぶん再帰の変換ミスだろ
548デフォルトの名無しさん
2020/06/05(金) 21:32:27.71ID:ZSs62RcL 色々調べたのですが・・・。
コピーし貼り付けのマクロで
条件付き書式だけを除いて張り付ける、というマクロを探しています。
今の状態ですと条件付き書式の情報まで上書きされて困っています。
ご教授宜しくお願い致します。
コピーし貼り付けのマクロで
条件付き書式だけを除いて張り付ける、というマクロを探しています。
今の状態ですと条件付き書式の情報まで上書きされて困っています。
ご教授宜しくお願い致します。
549デフォルトの名無しさん
2020/06/05(金) 21:43:17.50ID:H0L/fXZL >>547
変換ミスにしては何度も使ってるぞ
変換ミスにしては何度も使ってるぞ
550デフォルトの名無しさん
2020/06/05(金) 21:47:17.22ID:2CjtUfu9 >>548
まず他スレの質問締め切るなり断り入れるなりして来いよ
まず他スレの質問締め切るなり断り入れるなりして来いよ
551デフォルトの名無しさん
2020/06/05(金) 21:47:20.00ID:nvWU7/6f 貼り付けた後に
.FormatConditions.Delete
で条件付き書式だけ削除じゃダメなの?
.FormatConditions.Delete
で条件付き書式だけ削除じゃダメなの?
552548
2020/06/05(金) 22:17:11.59ID:ZSs62RcL553デフォルトの名無しさん
2020/06/05(金) 22:21:45.02ID:WwtDf+8P >>548
そもそも"コピー"する必要はあるの?
そもそも"コピー"する必要はあるの?
554デフォルトの名無しさん
2020/06/06(土) 02:50:09.78ID:2JXrsjtz pasteSpecial繰り返して必要なものだけ貼り付けるしかないんじゃない?
555デフォルトの名無しさん
2020/06/06(土) 07:05:32.16ID:boE/wbIl 何度でも蘇るのが再起だろうな
556デフォルトの名無しさん
2020/06/06(土) 08:07:18.40ID:dTKuJKfw >>436
ロマサガ3とはなかなか分かってる先輩だなw
ロマサガ3とはなかなか分かってる先輩だなw
557デフォルトの名無しさん
2020/06/06(土) 12:47:06.87ID:EOD/vRIp VBAの配列にもCount使わせて欲しい・・・・
面倒でたまらないわぁ
ちなみにSplitで空配列になったときってUBoundは必ず-1返すのかな
まぁSplitする前の文字列が空かどうかで判別すればいいんだけど
面倒でたまらないわぁ
ちなみにSplitで空配列になったときってUBoundは必ず-1返すのかな
まぁSplitする前の文字列が空かどうかで判別すればいいんだけど
558デフォルトの名無しさん
2020/06/06(土) 14:19:39.59ID:nsmtjJW2 SetTimerのコールバック関数内でSetTimerしなおすやつは、再起といっていいかも
あれ、再帰じゃないし
あれ、再帰じゃないし
559デフォルトの名無しさん
2020/06/06(土) 14:24:54.65ID:FUHWS7EH >>557
そういうのはラッパークラス定義しちゃえばいい
要素を持たない配列はuboundで-1になるけど、
配列を返す関数をそのままuboundの引数にするとメモリが解放されないらしい
一度変数に代入してから、その変数を引数にするしかない
そういうのはラッパークラス定義しちゃえばいい
要素を持たない配列はuboundで-1になるけど、
配列を返す関数をそのままuboundの引数にするとメモリが解放されないらしい
一度変数に代入してから、その変数を引数にするしかない
560548
2020/06/06(土) 19:20:06.05ID:evXurMFK >>554
有難うございます!そういうやり方もありますね。勉強になりました。
あれからIF関数と条件付き書式を組み合わせて問題克服できました。
相談に乗っていただけた方みなさん有難うございます。
お騒がせしますた。
有難うございます!そういうやり方もありますね。勉強になりました。
あれからIF関数と条件付き書式を組み合わせて問題克服できました。
相談に乗っていただけた方みなさん有難うございます。
お騒がせしますた。
561デフォルトの名無しさん
2020/06/07(日) 01:10:37.79ID:czcu/Wo5 ボタンを押してランダムに1ー100の数字をコンピュータに選ばせて、その結果をセルに表示させたいと思いマクロを組みました。
それはできたのですが、ボタンを押すごとに出る数字の履歴を残したいときはどうしたらいいでしょうか?例えば初めはA1、次はA2、次はA3…のようにしたいです。
それはできたのですが、ボタンを押すごとに出る数字の履歴を残したいときはどうしたらいいでしょうか?例えば初めはA1、次はA2、次はA3…のようにしたいです。
562デフォルトの名無しさん
2020/06/07(日) 01:27:02.35ID:MDOjbT3v また馬鹿が来た
563デフォルトの名無しさん
2020/06/07(日) 01:42:25.59ID:Dw2BAEV/ 消さなきゃいんじゃないの…
564デフォルトの名無しさん
2020/06/07(日) 01:51:41.32ID:czcu/Wo5 1回目、2回目とボタンを押すごとにA列を下方向に順に記録させたいのです。
説明が悪いかも、すみません
説明が悪いかも、すみません
565デフォルトの名無しさん
2020/06/07(日) 02:00:00.68ID:81VYwWTh 色々やり方があるが回数を持たせるのが簡単だろうな
566デフォルトの名無しさん
2020/06/07(日) 02:00:43.51ID:Dw2BAEV/ その通り表示させるセル変えればいんじゃないの…
567デフォルトの名無しさん
2020/06/07(日) 02:16:26.24ID:MDOjbT3v568デフォルトの名無しさん
2020/06/07(日) 02:44:14.80ID:81VYwWTh >>567
初心者ってこんなもんだろ
初心者ってこんなもんだろ
569デフォルトの名無しさん
2020/06/07(日) 03:03:21.76ID:zKcEsa3T 初心者は全部同じというゆとり理論
570デフォルトの名無しさん
2020/06/07(日) 03:47:02.63ID:kmJ+/rqz >>564
A列の最終行を探して次の行に数を入れる
A列の最終行を探して次の行に数を入れる
571デフォルトの名無しさん
2020/06/07(日) 03:48:37.81ID:kmJ+/rqz 最終行は値の入ってる最後って意味ね
572デフォルトの名無しさん
2020/06/07(日) 05:24:32.66ID:cf9XL00M まずは「1ー100」をマトモに書けるようになるのが先決だな
573デフォルトの名無しさん
2020/06/07(日) 05:49:46.12ID:dyM/5p3V >>544
再帰はスマートに書けることも多いけど再帰の数だけメモリを消費する
ファイル列挙みたいな大量になりかねないデータを扱う場合はおすすめできない
時間的にもメリットがないどころか下手すると遅くなり得る
列挙程度のどうでもいいような処理に使うべきじゃないよ
再帰はスマートに書けることも多いけど再帰の数だけメモリを消費する
ファイル列挙みたいな大量になりかねないデータを扱う場合はおすすめできない
時間的にもメリットがないどころか下手すると遅くなり得る
列挙程度のどうでもいいような処理に使うべきじゃないよ
574デフォルトの名無しさん
2020/06/07(日) 07:38:47.26ID:czcu/Wo5575デフォルトの名無しさん
2020/06/07(日) 07:53:48.37ID:MHP0r7Cu576デフォルトの名無しさん
2020/06/07(日) 07:56:27.57ID:ntu7XVDq コマンドプロンプトで十分だと思うけど。
VBAでやると、ファイル名に特殊文字が使われていた時に止まって地味にウザい。
VBAでやると、ファイル名に特殊文字が使われていた時に止まって地味にウザい。
577デフォルトの名無しさん
2020/06/07(日) 08:33:05.30ID:xH2ID0fk578デフォルトの名無しさん
2020/06/07(日) 08:38:56.41ID:ntu7XVDq579デフォルトの名無しさん
2020/06/07(日) 09:55:56.05ID:kdiJvE9H >>559
さんきゅ
さんきゅ
580デフォルトの名無しさん
2020/06/07(日) 13:01:44.81ID:H9nBLvae581デフォルトの名無しさん
2020/06/07(日) 13:10:29.47ID:xH2ID0fk582デフォルトの名無しさん
2020/06/07(日) 13:12:52.96ID:xH2ID0fk583デフォルトの名無しさん
2020/06/07(日) 15:23:54.63ID:H9nBLvae >>582
具体的なこと書かないであり得るとか言われてもなぁw
具体的なこと書かないであり得るとか言われてもなぁw
584デフォルトの名無しさん
2020/06/07(日) 16:37:31.43ID:ntu7XVDq585デフォルトの名無しさん
2020/06/07(日) 17:05:54.93ID:odk7pmo/ ファイル名に使えるのにVBAで扱えない文字なんて心当たりがないので、ぜひ具体的な文字を教えてくれ
586デフォルトの名無しさん
2020/06/07(日) 17:48:58.65ID:EhPxLCve おすすめの教本ありますか?
587デフォルトの名無しさん
2020/06/07(日) 17:49:37.87ID:H9nBLvae588デフォルトの名無しさん
2020/06/07(日) 18:20:31.92ID:s05OkEKn589デフォルトの名無しさん
2020/06/07(日) 18:34:00.18ID:Rq/eP/Hm VBAでは無いけれど
今回のオンライン申請では氏名の間に空白スペースがあったり
住所のハイフンなんかでエラーだったよ
山 田 花 子
山田 花子
山田 は な 子
11-20-13
十一一二十ー十三
一丁目 II ノ丘 ハイツ III
一- 弐- 三
今回のオンライン申請では氏名の間に空白スペースがあったり
住所のハイフンなんかでエラーだったよ
山 田 花 子
山田 花子
山田 は な 子
11-20-13
十一一二十ー十三
一丁目 II ノ丘 ハイツ III
一- 弐- 三
590デフォルトの名無しさん
2020/06/07(日) 18:53:28.87ID:H9nBLvae だから何?
それそういう仕様なんだろ(まあバグかもしれんが)
それそういう仕様なんだろ(まあバグかもしれんが)
591デフォルトの名無しさん
2020/06/07(日) 18:56:58.14ID:ntu7XVDq >>587
ああ、確かに特殊文字じゃ書けないわな。
|あいうえお 一番左にカーソルがある状態。
あ|いうえお 1回右を押す
あい|うえお 2回右を押す
あい|うえお 3回右を押す ←2回目と3回目が変わらない。こういう状態になる文字だよ。
あいう|えお 4回右を押す
あいうえ|お 5回右を押す
これで満足か?
ああ、確かに特殊文字じゃ書けないわな。
|あいうえお 一番左にカーソルがある状態。
あ|いうえお 1回右を押す
あい|うえお 2回右を押す
あい|うえお 3回右を押す ←2回目と3回目が変わらない。こういう状態になる文字だよ。
あいう|えお 4回右を押す
あいうえ|お 5回右を押す
これで満足か?
592デフォルトの名無しさん
2020/06/07(日) 19:05:10.46ID:ntu7XVDq >>585
特殊以外だと、日本語環境で中国語とか。
特殊以外だと、日本語環境で中国語とか。
593デフォルトの名無しさん
2020/06/07(日) 19:26:44.01ID:eHR7BWdB >>589
それ例ではスペースとかハイフン無いのに入力してエラーのパターンでは
それ例ではスペースとかハイフン無いのに入力してエラーのパターンでは
594デフォルトの名無しさん
2020/06/07(日) 19:30:43.11ID:H9nBLvae595デフォルトの名無しさん
2020/06/07(日) 20:18:15.14ID:ZURHSwDA そういえばADOを使ったcsv取り込み機能でうちの業務システムから出力したcsvファイルを取り込んだらエラーが出たことあったな。
ファイル名変えたら取り込めたけど。
ファイル名変えたら取り込めたけど。
596デフォルトの名無しさん
2020/06/07(日) 20:32:18.62ID:1v0hAbPt597582
2020/06/07(日) 20:50:04.89ID:1v0hAbPt ファイル名に?が入ったまま何かの処理をすればエラ―吐いて止まるというのは考えられる。
というか、何で俺が解説しなきゃならねえんだよ。
頼むぜw
というか、何で俺が解説しなきゃならねえんだよ。
頼むぜw
598582
2020/06/07(日) 20:56:23.87ID:1v0hAbPt >>589
そいつはレベルが低いな。
スペースなんて正式な住所や氏名にはあり得ねえとして、入力したもんから片っ端から抜いちまう処理を入れるもんだ。
ハイフンはちょっとあり得る。
普通はマイナス使うと思うんだが罫線記号使ったり似たのがいっぱいあるからな。
そいつはレベルが低いな。
スペースなんて正式な住所や氏名にはあり得ねえとして、入力したもんから片っ端から抜いちまう処理を入れるもんだ。
ハイフンはちょっとあり得る。
普通はマイナス使うと思うんだが罫線記号使ったり似たのがいっぱいあるからな。
599デフォルトの名無しさん
2020/06/07(日) 21:55:32.54ID:XVHV5xvT これだな
>Excel VBA 質問スレ Part43
>274 名前:デフォルトの名無しさん[] 投稿日:2016/12/02(金) 22:33:29.62 ID:rRSQCExt [1/2]
>ちょっと質問
>
>・おもむろにファイルエクスプローラを開く
>・なんでもいいからファイルのプロパティを開く
>・そこの作成日時をドラッグする
>・セルのA1にペーストする
>
>例えば 2013?年?12?月?1?日、??17:02:28
>これを(すでに文字化けしてると思うが)
>2013/12/1 17:02:28
>に整形したいんだけど
>どうすればいいんだ?
>半角に見えるけどサクラでみるとU+200Fとなっている
>中には数値の間にも混入しているのもある
>最初からFSOで取得するのは無しで
>すでに手動で取り込んだ数百件ものデータなんだ
>よろしくお願いします
>Excel VBA 質問スレ Part43
>274 名前:デフォルトの名無しさん[] 投稿日:2016/12/02(金) 22:33:29.62 ID:rRSQCExt [1/2]
>ちょっと質問
>
>・おもむろにファイルエクスプローラを開く
>・なんでもいいからファイルのプロパティを開く
>・そこの作成日時をドラッグする
>・セルのA1にペーストする
>
>例えば 2013?年?12?月?1?日、??17:02:28
>これを(すでに文字化けしてると思うが)
>2013/12/1 17:02:28
>に整形したいんだけど
>どうすればいいんだ?
>半角に見えるけどサクラでみるとU+200Fとなっている
>中には数値の間にも混入しているのもある
>最初からFSOで取得するのは無しで
>すでに手動で取り込んだ数百件ものデータなんだ
>よろしくお願いします
600デフォルトの名無しさん
2020/06/07(日) 22:23:02.67ID:QPxy+dct 再現しないぞ
601デフォルトの名無しさん
2020/06/07(日) 22:44:34.20ID:Zvt1FY8k602デフォルトの名無しさん
2020/06/07(日) 23:18:32.86ID:kciisc/v 前スレでここで教えて貰ったのが完成した
課のみんなのPCに入れて使いたいらしい
パス指定するタイプだから
・読取専用にする
・プロジェクトプロパティをロック
・C直下に置いてショートカットをデスクトップに置いてやる
・シート名は変えるなと徹底
こんだけ教えとけばまぁ大丈夫だよね?
課のみんなのPCに入れて使いたいらしい
パス指定するタイプだから
・読取専用にする
・プロジェクトプロパティをロック
・C直下に置いてショートカットをデスクトップに置いてやる
・シート名は変えるなと徹底
こんだけ教えとけばまぁ大丈夫だよね?
603デフォルトの名無しさん
2020/06/07(日) 23:22:24.39ID:wDFSrhzA セルの行と列の変数名って業務でよく使うんだけど
Dim r As Long '行
Dim c As Long '列
これで癖付けてっていいですか?いいですよね?
Dim r As Long '行
Dim c As Long '列
これで癖付けてっていいですか?いいですよね?
604デフォルトの名無しさん
2020/06/07(日) 23:26:23.34ID:Zvt1FY8k605デフォルトの名無しさん
2020/06/07(日) 23:35:39.43ID:Zvt1FY8k >>603
そのコード読むのが自分だけか複数人かでメンテしだいじゃ無いの
そのコード読むのが自分だけか複数人かでメンテしだいじゃ無いの
606デフォルトの名無しさん
2020/06/08(月) 01:11:56.88ID:VAdCiuLB607デフォルトの名無しさん
2020/06/08(月) 07:02:43.86ID:upiiQwtH >>606
ググるとFileSystemObject使えって書いてあるな
ググるとFileSystemObject使えって書いてあるな
608582
2020/06/08(月) 07:46:04.95ID:ACGXca97 >>607
でも、変数で受けちまうと何使っても?になっちまうよ。
それにFileSystemObjectのファイル列挙は糞遅かった筈。
特別な理由が無いならエラーで抜けちまって、特殊なファイル名には非対応とメッセージ出した方が良い気がする。
でも、変数で受けちまうと何使っても?になっちまうよ。
それにFileSystemObjectのファイル列挙は糞遅かった筈。
特別な理由が無いならエラーで抜けちまって、特殊なファイル名には非対応とメッセージ出した方が良い気がする。
609582
2020/06/08(月) 08:00:05.61ID:ACGXca97 >>601
少し住所を扱う処理を動かせば直ぐに気付くレベルの話だよ。
特にスペースなんて人名や住所以外でもよくある話。
全角だろうが半角だろうが""に変換しちまうのはよくやるだろう。
まあ、全角半角は数字とかアルファベットでも問題になるからその前にStrConv使って統一するとかが普通の処理だろう。
ハイフンだって思いつくものはマイナスに変換する程度のことはする。
少し住所を扱う処理を動かせば直ぐに気付くレベルの話だよ。
特にスペースなんて人名や住所以外でもよくある話。
全角だろうが半角だろうが""に変換しちまうのはよくやるだろう。
まあ、全角半角は数字とかアルファベットでも問題になるからその前にStrConv使って統一するとかが普通の処理だろう。
ハイフンだって思いつくものはマイナスに変換する程度のことはする。
610デフォルトの名無しさん
2020/06/08(月) 08:12:22.59ID:/JIEFRnW むしろテキストボックスのEN_UPDATEでスペースやハイフンを消せば楽
郵便番号欄は数字以外受け付けないようにスタイル指定するだけでもいい
郵便番号欄は数字以外受け付けないようにスタイル指定するだけでもいい
611デフォルトの名無しさん
2020/06/08(月) 08:46:24.73ID:k1oezjz2 フォルダを指定し、そのフォルダ内の全てのブックの、各ブックのシート"sire"の2行目から最終行をコピーして
シートcompの最下行の一つ下に張り付けていき、I列に各ブック名を記入していくマクロを教えてください。
Sub comp()
'フォルダを選択
Dim path As String
Dim r As Long
Dim buf As String
Dim i As Long
Dim filename As String
Dim mysheet As Worksheet
Dim srcbook As Workbook
Dim srcsheet As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = 0 Then
MsgBox "キャンセルされました。"
Exit Sub
End If
path = .SelectedItems(1)
End With
Application.ScreenUpdating = False
シートcompの最下行の一つ下に張り付けていき、I列に各ブック名を記入していくマクロを教えてください。
Sub comp()
'フォルダを選択
Dim path As String
Dim r As Long
Dim buf As String
Dim i As Long
Dim filename As String
Dim mysheet As Worksheet
Dim srcbook As Workbook
Dim srcsheet As Worksheet
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = 0 Then
MsgBox "キャンセルされました。"
Exit Sub
End If
path = .SelectedItems(1)
End With
Application.ScreenUpdating = False
612デフォルトの名無しさん
2020/06/08(月) 08:47:00.39ID:k1oezjz2 続き
Range("A1").Value = "担当者"
Range("B1").Value = "行程1"
Range("C1").Value = "件名1"
Range("D1").Value = "行程2"
Range("E1").Value = "件名2"
Range("F1").Value = "行程3"
Range("G1").Value = "件名3"
Range("H1").Value = "期間"
Range("I1").Value = "グループ名"
Set mysheet = ThisWorkbook.Worksheets("comp")
Debug.Print myseet
buf = Dir(path & "\*.xls") 'フォルダ内の全ファイル名
Debug.Print buf
Do While buf <> ""
Set srcbook = Workbooks.Open(path & "\" & buf)
Set srcsheet = srcbook.Worksheets("sire")
Range("A1").Value = "担当者"
Range("B1").Value = "行程1"
Range("C1").Value = "件名1"
Range("D1").Value = "行程2"
Range("E1").Value = "件名2"
Range("F1").Value = "行程3"
Range("G1").Value = "件名3"
Range("H1").Value = "期間"
Range("I1").Value = "グループ名"
Set mysheet = ThisWorkbook.Worksheets("comp")
Debug.Print myseet
buf = Dir(path & "\*.xls") 'フォルダ内の全ファイル名
Debug.Print buf
Do While buf <> ""
Set srcbook = Workbooks.Open(path & "\" & buf)
Set srcsheet = srcbook.Worksheets("sire")
613デフォルトの名無しさん
2020/06/08(月) 08:47:32.50ID:k1oezjz2 続き
filename = 'srcsheetの拡張子なしのファイル名を取得
'シートの内容を2行目以降コピー
srcsheet.Range(Cells(2, 8), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 8)).Copy
'myseetの最下行の一つ下に値として貼り付け
mysheet.Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
'I列にそれぞれのファイル名を入力
For r = Cells(Rows.Count, 9).End(xlUp).Row + 1 To Cells(Rows.Count, 1).End(xlUp).Row
Range("I" & r).Value = filename
Next r
srcbook.Close False
buf = Dir()
Loop
Cells.EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
filename = 'srcsheetの拡張子なしのファイル名を取得
'シートの内容を2行目以降コピー
srcsheet.Range(Cells(2, 8), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 8)).Copy
'myseetの最下行の一つ下に値として貼り付け
mysheet.Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).PasteSpecial xlPasteValues
'I列にそれぞれのファイル名を入力
For r = Cells(Rows.Count, 9).End(xlUp).Row + 1 To Cells(Rows.Count, 1).End(xlUp).Row
Range("I" & r).Value = filename
Next r
srcbook.Close False
buf = Dir()
Loop
Cells.EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
614デフォルトの名無しさん
2020/06/08(月) 10:43:42.37ID:pUpXY1nL ワークシートの指定について
Activesheetだと動いて、worksheets(index)やworksheets("シート名")にするとプログラムが動かないことが多いのですが、何故でしょうか
下のようなプログラムを作りました。(Sheet2のA列の数字でSheet1にフィルターをかけて、pdf出力を繰り返す)
Sub Macro3()
For Each c In Worksheets("Sheet2").Range("A1:A68")
i = c.Value
a=1
Worksheets(1).Range("$B$4:$N$6492").AutoFilter Field:=1, Criteria1:=i
Worksheets(1).PageSetup.RightHeader = " " & i
r = Range("$B$5:$B$6492").Find(i).Row
Worksheets(1).ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Documents" & i & "." & Cells(r, 11).Value
Next c
End Sub
これを実行しても、フィルターがかからず、pdf出力メソッドの部分でエラーが起きます。
しかし、Worksheets(1) を Activesheetに直して、Sheet1をアクティブにした状態で動かすと正常に動きます。
イミディエイトウィンドウでWorksheets(1)が正しく指定されているかも確認しましたが、されていました。
一体何が原因なのでしょうか。
Activesheetだと動いて、worksheets(index)やworksheets("シート名")にするとプログラムが動かないことが多いのですが、何故でしょうか
下のようなプログラムを作りました。(Sheet2のA列の数字でSheet1にフィルターをかけて、pdf出力を繰り返す)
Sub Macro3()
For Each c In Worksheets("Sheet2").Range("A1:A68")
i = c.Value
a=1
Worksheets(1).Range("$B$4:$N$6492").AutoFilter Field:=1, Criteria1:=i
Worksheets(1).PageSetup.RightHeader = " " & i
r = Range("$B$5:$B$6492").Find(i).Row
Worksheets(1).ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\Documents" & i & "." & Cells(r, 11).Value
Next c
End Sub
これを実行しても、フィルターがかからず、pdf出力メソッドの部分でエラーが起きます。
しかし、Worksheets(1) を Activesheetに直して、Sheet1をアクティブにした状態で動かすと正常に動きます。
イミディエイトウィンドウでWorksheets(1)が正しく指定されているかも確認しましたが、されていました。
一体何が原因なのでしょうか。
615デフォルトの名無しさん
2020/06/08(月) 11:07:13.39ID:FM/y1B8a >>614
入力ミスがないとして、この2箇所でシートの指定が抜けてるのが原因では
Range("$B$5:$B$6492").Find(i).Row
Cells(r, 11).Value
何度もWorksheets(1)を書くんじゃなくて、Forの外でActivateするかWithでSheet1を指定した方が間違いがなくていいと思う
入力ミスがないとして、この2箇所でシートの指定が抜けてるのが原因では
Range("$B$5:$B$6492").Find(i).Row
Cells(r, 11).Value
何度もWorksheets(1)を書くんじゃなくて、Forの外でActivateするかWithでSheet1を指定した方が間違いがなくていいと思う
616デフォルトの名無しさん
2020/06/08(月) 11:07:50.22ID:F0/ca02L workbookは指定してるの?
617デフォルトの名無しさん
2020/06/08(月) 14:34:55.82ID:k7tLKOMH アドインに記述されてるプロシージャを、シート上の図形をボタンにしてそこから走らせたいのですが、
引数を渡そうとすると、このブックでマクロが使用できないかすべてのマクロが無効なっている可能性があります、と出て実行できません
すべてのマクロを有効にしてもダメでした
引数なしの場合は、マクロが無効であっても、なんの問題もなく実行されます
登録は、'プロシージャ名 "引数"'とやっているのですが、マクロからそのままやると実行されますが、ボタンに登録すると実行されません
なにが問題なんでしょうか?
引数を渡そうとすると、このブックでマクロが使用できないかすべてのマクロが無効なっている可能性があります、と出て実行できません
すべてのマクロを有効にしてもダメでした
引数なしの場合は、マクロが無効であっても、なんの問題もなく実行されます
登録は、'プロシージャ名 "引数"'とやっているのですが、マクロからそのままやると実行されますが、ボタンに登録すると実行されません
なにが問題なんでしょうか?
618デフォルトの名無しさん
2020/06/08(月) 15:14:19.45ID:vAWoQ1cV sub 引数なし()
引数あり "引数"
end sub
引数あり "引数"
end sub
619デフォルトの名無しさん
2020/06/08(月) 15:39:02.50ID:P+hhNSq/ なるほど・・・
結構な数のボタンになるので面倒ですが、ひとまずそれでやってみます
結構な数のボタンになるので面倒ですが、ひとまずそれでやってみます
620デフォルトの名無しさん
2020/06/08(月) 15:41:22.39ID:F0/ca02L プルダウンなりなんなりで選ぶなりなんなりさせればいいじゃないなり
621デフォルトの名無しさん
2020/06/08(月) 16:55:09.51ID:Fo3kuWti イベント付きボタンのクラス作ればいいんじゃないのかな
622611
2020/06/08(月) 17:50:20.70ID:k1oezjz2 srcsheet.Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 8)).Copy
のところが違うみたいです。どう書けばいいですか?
のところが違うみたいです。どう書けばいいですか?
623デフォルトの名無しさん
2020/06/08(月) 18:10:47.25ID:sSFxNrIu シート名が抜けるの俺もむかーしよくやったわぁ
アクティブにすると直るんだよなぁw
何度やったか記憶にないぐらいやって痛い思いした
アクティブにすると直るんだよなぁw
何度やったか記憶にないぐらいやって痛い思いした
624デフォルトの名無しさん
2020/06/08(月) 18:31:02.99ID:J+Lc8xxu withで囲んでもドットを忘れてそれに気づかずいつまでもソースとにらめっこしたりな
625デフォルトの名無しさん
2020/06/08(月) 18:52:12.93ID:d2CDqPLn >>622
srcsheet.Range(srcsheet.Cells(2, 1), srcsheet.Cells(Cells(Rows.Count, 1).End(xlUp).Row, 8)).Copy
確証ないけど…
srcsheet.Range(srcsheet.Cells(2, 1), srcsheet.Cells(Cells(Rows.Count, 1).End(xlUp).Row, 8)).Copy
確証ないけど…
626デフォルトの名無しさん
2020/06/08(月) 19:01:25.33ID:zqZQO86x Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Range("A:Z").Interior.Color = xlNone
If Intersect(Sh.Range("A:Z"), Target) Is Nothing Then
Exit Sub
Else '赤く色が変わる列
Intersect(Selection.EntireRow, Sh.Range("G:Z")).Interior.Color = RGB(0, 255, 0)
End If
End Sub
とにかく複数選択したセル行の特定の列を全部色付け
選択をやめると色が戻る(デフォルト)をやりたくて
ThisWorkBookにこれを追記
で、なんとか希望の動きになったんですが
これに1行目から7行目は除外(選択しても色が付かない)
という条件の追加は可能ですか?
自分の知識じゃ無理ゲーですみません
Sh.Range("A:Z").Interior.Color = xlNone
If Intersect(Sh.Range("A:Z"), Target) Is Nothing Then
Exit Sub
Else '赤く色が変わる列
Intersect(Selection.EntireRow, Sh.Range("G:Z")).Interior.Color = RGB(0, 255, 0)
End If
End Sub
とにかく複数選択したセル行の特定の列を全部色付け
選択をやめると色が戻る(デフォルト)をやりたくて
ThisWorkBookにこれを追記
で、なんとか希望の動きになったんですが
これに1行目から7行目は除外(選択しても色が付かない)
という条件の追加は可能ですか?
自分の知識じゃ無理ゲーですみません
627デフォルトの名無しさん
2020/06/08(月) 19:48:40.38ID:58QwRa4M629デフォルトの名無しさん
2020/06/08(月) 20:24:46.83ID:zqZQO86x >>627
おおお、ありがとう理想の挙動に近づきました!
これだと12行目を選択した後にやめて
1行目を選択しても12行目の色が残っちゃうんだけどそれは回避不能ですか?
If Intersect(Sh.Range("A:Z"), Target) Isのところを
If Intersect(Sh.Range("A8:Z5000"), Target) Is
とかに変えても少し挙動が近づいた気もしますが、
おおお、ありがとう理想の挙動に近づきました!
これだと12行目を選択した後にやめて
1行目を選択しても12行目の色が残っちゃうんだけどそれは回避不能ですか?
If Intersect(Sh.Range("A:Z"), Target) Isのところを
If Intersect(Sh.Range("A8:Z5000"), Target) Is
とかに変えても少し挙動が近づいた気もしますが、
630デフォルトの名無しさん
2020/06/08(月) 20:28:42.90ID:pW+OOibM 構造体のメンバ変数を頭からindexで指定するようなことってできませんか?
for文で構造体のメンバ変数と配列とを順次比較したいんですが。
for文で構造体のメンバ変数と配列とを順次比較したいんですが。
631デフォルトの名無しさん
2020/06/08(月) 20:28:54.07ID:WKHI6Xr1 変数名やプロシージャ名を日本語で書くか否か迷ってます
日本語命名で困ったことが起こった人はいますか
日本語命名で困ったことが起こった人はいますか
632デフォルトの名無しさん
2020/06/08(月) 20:30:33.47ID:ckk4P3me >>629
少しは頭を使えよ、馬鹿
少しは頭を使えよ、馬鹿
633デフォルトの名無しさん
2020/06/09(火) 00:06:52.26ID:GDblTDVr >>632
頭使ったらハゲるだろ、このハゲ
頭使ったらハゲるだろ、このハゲ
634デフォルトの名無しさん
2020/06/09(火) 00:40:35.48ID:4DWGZxBT ちょっとトンチンカンかもしれないですが
WindowsのエクセルのVBAって
LinuxのOpen OfficeのCalcでも使えたりするんでしょうか?
WindowsのエクセルのVBAって
LinuxのOpen OfficeのCalcでも使えたりするんでしょうか?
635デフォルトの名無しさん
2020/06/09(火) 01:33:20.60ID:dgDUMn0q636デフォルトの名無しさん
2020/06/09(火) 03:31:53.35ID:eSuxcQl/637デフォルトの名無しさん
2020/06/09(火) 03:41:28.59ID:eSuxcQl/639デフォルトの名無しさん
2020/06/09(火) 09:00:21.92ID:khiSZY25 >>631
会社で使うなら社内の自分より詳しい人に相談してみ
会社で使うなら社内の自分より詳しい人に相談してみ
640デフォルトの名無しさん
2020/06/09(火) 09:06:51.24ID:r/wULa9J 個人的には日本語プロシジャー名好き
処理名だと分かりやすい
処理名だと分かりやすい
641デフォルトの名無しさん
2020/06/09(火) 09:38:40.07ID:rQkYVq9m 困った時のローマ字
Sub CSV_no_deTa_wo_rodo_suru()
Sub CSV_no_deTa_wo_rodo_suru()
642デフォルトの名無しさん
2020/06/09(火) 09:49:38.68ID:r/wULa9J そもそもシート名で日本語使ってるからね
気にするならそこからやらないとね
気にするならそこからやらないとね
643デフォルトの名無しさん
2020/06/09(火) 09:56:55.81ID:LXNCuYlO >>631
単純に一つの言語で統一した方が読みやすい
これは一般的な文章でも感じられると思う
逆にコメント等を日本語にすることで注釈として意識させることが出来る
自分は実装には使わないテスト用のメソッドをを日本語名にする事はあるよ
アメリカに送ったら云々は条件が特殊だし、
日本語コメントも文字化けするんだから関係ないだろと思う
単純に一つの言語で統一した方が読みやすい
これは一般的な文章でも感じられると思う
逆にコメント等を日本語にすることで注釈として意識させることが出来る
自分は実装には使わないテスト用のメソッドをを日本語名にする事はあるよ
アメリカに送ったら云々は条件が特殊だし、
日本語コメントも文字化けするんだから関係ないだろと思う
644デフォルトの名無しさん
2020/06/09(火) 10:05:30.26ID:FZrbGc0Z システムとして表示やコンパイルが可能かってのと、それを読む人間が外国語を理解できるかはまた別の話
とりまファイル名やワークシートに入ってるデータが日本語なら何も気にしなくていいってことよ
そもそも半角文字だって国によって割り当てが違うんだし
とりまファイル名やワークシートに入ってるデータが日本語なら何も気にしなくていいってことよ
そもそも半角文字だって国によって割り当てが違うんだし
645デフォルトの名無しさん
2020/06/09(火) 10:25:08.00ID:LXNCuYlO いずれにしても海外環境で動くかって話になると、
関数名ひとつの話じゃないってことだな
関数名ひとつの話じゃないってことだな
646デフォルトの名無しさん
2020/06/09(火) 11:06:11.34ID:GhLF46O3 >>640
自分はプロシージャ名だけでなく変数名にもときどき使ってます。
変数名を横文字で考え付くのが面倒ってこともありますが。
行や列の位置を示す変数に tate yoko の後は 行 列 縦 横 など。
自分はプロシージャ名だけでなく変数名にもときどき使ってます。
変数名を横文字で考え付くのが面倒ってこともありますが。
行や列の位置を示す変数に tate yoko の後は 行 列 縦 横 など。
647デフォルトの名無しさん
2020/06/09(火) 12:07:12.66ID:GJCBYo9K 賛否両論(少し否優勢)な感じね
賛の中でもプロシージャ名、関数名、定数変数名のどこまで日本語が許されるかも派閥次第か
賛の中でもプロシージャ名、関数名、定数変数名のどこまで日本語が許されるかも派閥次第か
648582
2020/06/09(火) 12:11:23.51ID:w8zDheKG iとかなら良いけど変数の型とかプロシージャなのか区別出来る名前になってないと最悪。
で、日本語の名前つけてるのにそんなのが多い。
で、日本語の名前つけてるのにそんなのが多い。
649デフォルトの名無しさん
2020/06/09(火) 12:33:34.60ID:RJ9Fxau+ >>637
ありがとうございます
ありがとうございます
650デフォルトの名無しさん
2020/06/09(火) 12:34:58.09ID:LXNCuYlO 変な事せずに命名規則に従った方がいいと思うけどね
メシマズ嫁と同じ思考回路だぞ
メシマズ嫁と同じ思考回路だぞ
651デフォルトの名無しさん
2020/06/09(火) 14:16:42.79ID:VHdLMKHt すみません。どなたか詳しい方、ご指導願います。
データ計算をVBA作成しようとして悩んでいます。
リストボックスにある地名を選択して、テキストボックス1に数字を
入力したらテキストボックス2に対応した数値を出したいのですが
上手く書けません。
データシートのA列(A2からA300)には地名、横軸(B1からBG1)には整数値(50ずつの数値)があり
地名と整数値の交点には、それぞれ対応した金額が入っています。
またリストボックスの地名は「地名」として別シートを作成しています。
説明方法が悪くて申し訳ないのですが記述の方法の
解説を宜しくお願いします。
データ計算をVBA作成しようとして悩んでいます。
リストボックスにある地名を選択して、テキストボックス1に数字を
入力したらテキストボックス2に対応した数値を出したいのですが
上手く書けません。
データシートのA列(A2からA300)には地名、横軸(B1からBG1)には整数値(50ずつの数値)があり
地名と整数値の交点には、それぞれ対応した金額が入っています。
またリストボックスの地名は「地名」として別シートを作成しています。
説明方法が悪くて申し訳ないのですが記述の方法の
解説を宜しくお願いします。
652デフォルトの名無しさん
2020/06/09(火) 14:31:54.35ID:ksQUvwBH h,vlookupじゃダメなんですか?
653デフォルトの名無しさん
2020/06/09(火) 14:36:44.80ID:LXNCuYlO どこまで書けてて、どこから分からないの?
654デフォルトの名無しさん
2020/06/09(火) 14:38:50.34ID:XR5JAco5 XY座標のセル表示して終わりじゃないなら
ピボット勉強した方が良いと思う
ピボット勉強した方が良いと思う
655デフォルトの名無しさん
2020/06/09(火) 14:49:37.66ID:VHdLMKHt 651です。
Private Sub ListBox1_Change()
ListBox3.Clear
Select Case ListBox1.Text
Case "東京都"
ListBox3.List = Worksheets("データ").Range("A2:A8").Value
(略)
End Select
With ListBox3
.ColumnHeads = False
.ColumnCount = 1
.ColumnWidths = "40;50;50"
.Font.Name = "Meiryo UI"
.Font.Size = 11
End With
End Sub
Private Sub TextBox2_AfterUpdate()
Dim TextBox2 As Range
Dim TextBox3 As Range
Set TextBox2 = Worksheets("データ").Range("A2:A13")
Set TextBox3 = TextBox2.Find(What:=TextBox2.Value, LookAt:=xlPart)
If Not TextBox3 Is Nothing Then
'ヒットした値をテキストボックスにセット
TextRegion.Value = Worksheets("データ").Cells(TextBox3.Row, TextBox3.Column + 8).Value
End If
End Sub
なんか変です。。。
Private Sub ListBox1_Change()
ListBox3.Clear
Select Case ListBox1.Text
Case "東京都"
ListBox3.List = Worksheets("データ").Range("A2:A8").Value
(略)
End Select
With ListBox3
.ColumnHeads = False
.ColumnCount = 1
.ColumnWidths = "40;50;50"
.Font.Name = "Meiryo UI"
.Font.Size = 11
End With
End Sub
Private Sub TextBox2_AfterUpdate()
Dim TextBox2 As Range
Dim TextBox3 As Range
Set TextBox2 = Worksheets("データ").Range("A2:A13")
Set TextBox3 = TextBox2.Find(What:=TextBox2.Value, LookAt:=xlPart)
If Not TextBox3 Is Nothing Then
'ヒットした値をテキストボックスにセット
TextRegion.Value = Worksheets("データ").Cells(TextBox3.Row, TextBox3.Column + 8).Value
End If
End Sub
なんか変です。。。
656デフォルトの名無しさん
2020/06/09(火) 14:54:09.61ID:VHdLMKHt 651です。
たぶんツッコミどころ満載です。
交点のセレクトできていません。
たぶんツッコミどころ満載です。
交点のセレクトできていません。
657デフォルトの名無しさん
2020/06/09(火) 15:51:31.81ID:Hq8JX0Tk なぜ段階を踏んで自分でテストモデルを組んでみないのかが疑問だわ
初心者の頃も含めてその程度の内容で誰かに聞いたことすらないわ
初心者の頃も含めてその程度の内容で誰かに聞いたことすらないわ
658デフォルトの名無しさん
2020/06/09(火) 15:53:54.04ID:Hq8JX0Tk 1.リストボックスで選択してボタン押して他のフォームで項目表示できるか
2.テキストボックスに書き込んでボタン押して他のフォームのテキストボックスに表示できるか
3.リストボックスとテキストボックスで選択と書込をして同じフォーム上のテキストボックスに対応した数字を出せるのか
とかとか
2.テキストボックスに書き込んでボタン押して他のフォームのテキストボックスに表示できるか
3.リストボックスとテキストボックスで選択と書込をして同じフォーム上のテキストボックスに対応した数字を出せるのか
とかとか
659デフォルトの名無しさん
2020/06/09(火) 16:19:22.27ID:ksQUvwBH マクロの記録使うのはいいけど
その結果の意味ぐらい調べようよ
ググらなくてもF1キー押せば表示されるからさ
その結果の意味ぐらい調べようよ
ググらなくてもF1キー押せば表示されるからさ
660デフォルトの名無しさん
2020/06/09(火) 16:24:07.60ID:LXNCuYlO661デフォルトの名無しさん
2020/06/09(火) 17:05:07.59ID:/5vAUGTr662デフォルトの名無しさん
2020/06/09(火) 17:28:45.58ID:FZrbGc0Z >>661
簡単
簡単
663デフォルトの名無しさん
2020/06/09(火) 17:40:53.94ID:Hq8JX0Tk ユーザーフォーム使ってTextBox1とTextBox2に数字いれてTextBox3に足し算の結果だすような基本をまず調べればあとは適当にぐぐりゃ分かるわな
計算途中も変数いちいち宣言して代入していくといいわ
自分で何やってんのか見失わないようにするため
Sub testttt()
Dim drawingX As Double: drawingX = 2
Dim drawingY As Double: drawingY = 2
Dim realX As Double: realX = 2.1
Dim realY As Double: realY = 2.1
Dim diffX As Double: diffX = realX - drawingX
Dim diffY As Double: diffY = realY - drawingY
Dim ResultPosition As Double: ResultPosition = Sqr(diffX * diffX + diffY * diffY) * 2
MsgBox ResultPosition
End Sub
計算途中も変数いちいち宣言して代入していくといいわ
自分で何やってんのか見失わないようにするため
Sub testttt()
Dim drawingX As Double: drawingX = 2
Dim drawingY As Double: drawingY = 2
Dim realX As Double: realX = 2.1
Dim realY As Double: realY = 2.1
Dim diffX As Double: diffX = realX - drawingX
Dim diffY As Double: diffY = realY - drawingY
Dim ResultPosition As Double: ResultPosition = Sqr(diffX * diffX + diffY * diffY) * 2
MsgBox ResultPosition
End Sub
664デフォルトの名無しさん
2020/06/09(火) 17:54:43.46ID:AbQV9kr1 Private Sub TextBox1_Change() 'Xの図面寸法
TextBox3 = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
Private Sub TextBox2_Change() 'Xの測定値
TextBox3 = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
Private Sub TextBox3_AfterUpdate()'Xのズレ
TextBox3 = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
Private Sub TextBox4_Change()'Yの図面寸法
TextBox6 = Val(TextBox4.Value) - Val(TextBox5.Value)
End Sub
Private Sub TextBox5_Change() 'Yの測定値
TextBox6 = Val(TextBox4.Value) - Val(TextBox5.Value)
End Sub
Private Sub TextBox6_Change() 'Yのズレ
TextBox6 = Val(TextBox4.Value) - Val(TextBox5.Value)
End Sub
Private Sub TextBox7_Change()
'位置度最難関
TextBox7 = Val(Sqr(TextBox3.Value) ^ 2) + Val(Sqr(TextBox6.Value) ^ 2) * 2
End Sub
tBox6.Value) ^ 2) * 2
End Sub
1〜6まではぐぐったらなんとかできた
あとは7… >>663 ぐぐるより難しそうで無理す
TextBox3 = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
Private Sub TextBox2_Change() 'Xの測定値
TextBox3 = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
Private Sub TextBox3_AfterUpdate()'Xのズレ
TextBox3 = Val(TextBox1.Value) - Val(TextBox2.Value)
End Sub
Private Sub TextBox4_Change()'Yの図面寸法
TextBox6 = Val(TextBox4.Value) - Val(TextBox5.Value)
End Sub
Private Sub TextBox5_Change() 'Yの測定値
TextBox6 = Val(TextBox4.Value) - Val(TextBox5.Value)
End Sub
Private Sub TextBox6_Change() 'Yのズレ
TextBox6 = Val(TextBox4.Value) - Val(TextBox5.Value)
End Sub
Private Sub TextBox7_Change()
'位置度最難関
TextBox7 = Val(Sqr(TextBox3.Value) ^ 2) + Val(Sqr(TextBox6.Value) ^ 2) * 2
End Sub
tBox6.Value) ^ 2) * 2
End Sub
1〜6まではぐぐったらなんとかできた
あとは7… >>663 ぐぐるより難しそうで無理す
665デフォルトの名無しさん
2020/06/09(火) 17:58:28.74ID:AbQV9kr1 ああ、最後に変なコピペが混じってる
3と6にも多分式を入れないとだめですよね恐らく
3と6にも多分式を入れないとだめですよね恐らく
666デフォルトの名無しさん
2020/06/09(火) 18:02:48.17ID:AbQV9kr1 いや違う、むしろ7に入れずに3と6っぽい?
そもそもド素人にはやはり厳しいね
頑張りますわ
そもそもド素人にはやはり厳しいね
頑張りますわ
667デフォルトの名無しさん
2020/06/09(火) 18:44:30.51ID:AbQV9kr1 うおぉ、浮動小数点かこりゃ?
どっかでroundで四捨五入せんといかんのね
1人であたふたすまん
ほんとムズい
どっかでroundで四捨五入せんといかんのね
1人であたふたすまん
ほんとムズい
668デフォルトの名無しさん
2020/06/09(火) 19:24:04.57ID:Hq8JX0Tk Changeイベントなんか使うから難しくなるわけで・・・・
そのサイトにあるように、ボタン押して計算するようなもの作りたいんだろ?
ならズレ角度抜きで、テキストボックス7個作って
ボタン押すと上の4個から数値拾ってきて下の3個に計算結果を入れるっていうな
イベント系はCommandButton1_Click()だけでいいはずだぞ
そのサイトにあるように、ボタン押して計算するようなもの作りたいんだろ?
ならズレ角度抜きで、テキストボックス7個作って
ボタン押すと上の4個から数値拾ってきて下の3個に計算結果を入れるっていうな
イベント系はCommandButton1_Click()だけでいいはずだぞ
669デフォルトの名無しさん
2020/06/09(火) 19:44:15.62ID:Hq8JX0Tk Private Sub CommandButton1_Click()
Dim drawingX As Double: drawingX = TextBox1.Value
Dim drawingY As Double: drawingY = TextBox2.Value
Dim realX As Double: realX = TextBox3.Value
Dim realY As Double: realY = TextBox4.Value
Dim diffX As Double: diffX = realX - drawingX
Dim diffY As Double: diffY = realY - drawingY
Dim ResultPosition As Double: ResultPosition = Sqr(diffX * diffX + diffY * diffY) * 2
TextBox5 = ResultPosition
End Sub
https://i.imgur.com/yhMCwtL.jpg
位置度だけだけど。
テキストボックスはIMEModeOffにしておく
Dim drawingX As Double: drawingX = TextBox1.Value
Dim drawingY As Double: drawingY = TextBox2.Value
Dim realX As Double: realX = TextBox3.Value
Dim realY As Double: realY = TextBox4.Value
Dim diffX As Double: diffX = realX - drawingX
Dim diffY As Double: diffY = realY - drawingY
Dim ResultPosition As Double: ResultPosition = Sqr(diffX * diffX + diffY * diffY) * 2
TextBox5 = ResultPosition
End Sub
https://i.imgur.com/yhMCwtL.jpg
位置度だけだけど。
テキストボックスはIMEModeOffにしておく
670デフォルトの名無しさん
2020/06/09(火) 19:49:22.56ID:0Bu4FXEm なんでユーザーフォームってクソダサなんだろな
色変えられるんだしMicrosoftももうちょい気遣ってくれてもいいのにな
色変えられるんだしMicrosoftももうちょい気遣ってくれてもいいのにな
671デフォルトの名無しさん
2020/06/09(火) 20:04:52.19ID:PO2SY+XL >>669
天才ですか、、
何も知らん癖に自動にしたいかなぁと
思って検索してパクりまくって作ってましたわ
ズレ量も欲しいからとせっせと
小数点も3桁以上は四捨五入したく
1〜4までは意味も分からずとりあえず
ちゃんと挙動してるかなぁレベル
アドバイス貰う以前の素人レベルだからスクショですんません
原理すらわかってない
https://i.imgur.com/0iPDqgX.jpg
https://i.imgur.com/ksEqFVN.jpg
天才ですか、、
何も知らん癖に自動にしたいかなぁと
思って検索してパクりまくって作ってましたわ
ズレ量も欲しいからとせっせと
小数点も3桁以上は四捨五入したく
1〜4までは意味も分からずとりあえず
ちゃんと挙動してるかなぁレベル
アドバイス貰う以前の素人レベルだからスクショですんません
原理すらわかってない
https://i.imgur.com/0iPDqgX.jpg
https://i.imgur.com/ksEqFVN.jpg
672582
2020/06/09(火) 20:10:52.53ID:w8zDheKG >>664
そういう書き方せずに>>663を具体的な値の部分は削除してまず関数化する。
Function GetResultPosition(drawingX As Double, drawingY As Double, realX As Double, realY As Double) As Double
Dim diffX As Double: diffX = realX - drawingX
Dim diffY As Double: diffY = realY - drawingY
Dim ResultPosition As Double: ResultPosition = Sqr(diffX * diffX + diffY * diffY) * 2
GetResultPosition = ResultPosition
End Function
初心者を脱っしていれば、点はユーザー定義にしてると思うけど、まあこんな感じ。
そういう書き方せずに>>663を具体的な値の部分は削除してまず関数化する。
Function GetResultPosition(drawingX As Double, drawingY As Double, realX As Double, realY As Double) As Double
Dim diffX As Double: diffX = realX - drawingX
Dim diffY As Double: diffY = realY - drawingY
Dim ResultPosition As Double: ResultPosition = Sqr(diffX * diffX + diffY * diffY) * 2
GetResultPosition = ResultPosition
End Function
初心者を脱っしていれば、点はユーザー定義にしてると思うけど、まあこんな感じ。
673デフォルトの名無しさん
2020/06/09(火) 20:19:17.07ID:OFRsK1Sh いつまで素人素人言い訳してくれくれする気だ
674582
2020/06/09(火) 20:19:48.80ID:w8zDheKG 次にTextBoxの値を関数い代入する。
なお、TextBoxの名前もそれっぽく変えておく。
Sub test()
Dim drawingX As Double
Dim drawingY As Double
Dim realX As Double
Dim realY As Double
drawingX=txtDrawingX.Value
drawingY=txtDrawingY.Value
realX=txtRealX.Value
realY=txtRealY.Value
txtResult.Value=GetResultPosition(drawingX, drawingY, realX, realY)
End Sub
なお、TextBoxの名前もそれっぽく変えておく。
Sub test()
Dim drawingX As Double
Dim drawingY As Double
Dim realX As Double
Dim realY As Double
drawingX=txtDrawingX.Value
drawingY=txtDrawingY.Value
realX=txtRealX.Value
realY=txtRealY.Value
txtResult.Value=GetResultPosition(drawingX, drawingY, realX, realY)
End Sub
675デフォルトの名無しさん
2020/06/09(火) 20:28:43.03ID:PO2SY+XL ごめんスクショの所も直しきれてなかったし初心者を脱してないレベルだから
調子乗って挑戦しようと思ったのが間違い
測定値はどこまで小数点書こうが3桁で四捨五入
ズレ量も四捨五入された3桁で表示
四捨五入された3桁のズレ量同士で計算されて
位置度も3桁で四捨五入されてフィニッシュ
やろうとした事が多すぎました
普段のエクセルのSQRT関数入れたツールか
関数電卓で断念します
クレクレとかじゃなく、助言みんなありがとうです
調子乗って挑戦しようと思ったのが間違い
測定値はどこまで小数点書こうが3桁で四捨五入
ズレ量も四捨五入された3桁で表示
四捨五入された3桁のズレ量同士で計算されて
位置度も3桁で四捨五入されてフィニッシュ
やろうとした事が多すぎました
普段のエクセルのSQRT関数入れたツールか
関数電卓で断念します
クレクレとかじゃなく、助言みんなありがとうです
676582
2020/06/09(火) 20:51:16.65ID:w8zDheKG >>675
四捨五入なんて最後で良いじゃん。
ResultPositionを四捨五入して返すだけだと思うが。
入力の見た目も四捨五入したいならそれぞれでやりゃ良いし。
どっちにしろ、四捨五入なんて考えずに作って、出来てから考えた方が良いぞ。
四捨五入なんて最後で良いじゃん。
ResultPositionを四捨五入して返すだけだと思うが。
入力の見た目も四捨五入したいならそれぞれでやりゃ良いし。
どっちにしろ、四捨五入なんて考えずに作って、出来てから考えた方が良いぞ。
677デフォルトの名無しさん
2020/06/09(火) 21:14:50.07ID:PO2SY+XL >>676
どうも…事情がありまして
ズレ量と位置度を両方記入する必要があるから計算を合わせたいのです
そうしないと記入したズレ量と数値の計算が違ってくるので
なので普段はExcel関数ツール作ってで計算させてます
(名称はセル番地)
まず小数点7桁ぐらいで出力されてきやがるズレ量をRound関数で全て小数点3桁にする
↓
小数点3桁同士で位置度の計算をさせる
=if(位置度="","",SQRT(SUMSQ(X実測値-X図面寸法,Y実測値-Y図面寸法))*2)
↓
最後に出た位置度も小数点3桁にする
=if(位置度="","",Round(位置度,3)
↓
位置度とズレ量を小数点3桁まで記入
現状これが自分の最善だったので…
どうも…事情がありまして
ズレ量と位置度を両方記入する必要があるから計算を合わせたいのです
そうしないと記入したズレ量と数値の計算が違ってくるので
なので普段はExcel関数ツール作ってで計算させてます
(名称はセル番地)
まず小数点7桁ぐらいで出力されてきやがるズレ量をRound関数で全て小数点3桁にする
↓
小数点3桁同士で位置度の計算をさせる
=if(位置度="","",SQRT(SUMSQ(X実測値-X図面寸法,Y実測値-Y図面寸法))*2)
↓
最後に出た位置度も小数点3桁にする
=if(位置度="","",Round(位置度,3)
↓
位置度とズレ量を小数点3桁まで記入
現状これが自分の最善だったので…
678デフォルトの名無しさん
2020/06/09(火) 21:21:13.62ID:PO2SY+XL 間違えた
小数点3桁同士で位置度の計算をさせる
=if(Xの実測値="","",SQRT(SUMSQ(X実測値-X図面寸法,Y実測値-Y図面寸法))*2)
2つ目はこうやった
小数点3桁同士で位置度の計算をさせる
=if(Xの実測値="","",SQRT(SUMSQ(X実測値-X図面寸法,Y実測値-Y図面寸法))*2)
2つ目はこうやった
679582
2020/06/09(火) 21:24:41.76ID:kJxmgxZ3680デフォルトの名無しさん
2020/06/09(火) 21:29:48.33ID:PO2SY+XL681デフォルトの名無しさん
2020/06/09(火) 21:37:07.98ID:/5vAUGTr そういう業務と無縁だからエクセル関数で計算とかほとんど知らん俺からすると
そんな数式ほんとかよと思ったら
ほんとだった
それはそれでよく考えたもんだなおい
測定をする?部署は凄いね
そんな数式ほんとかよと思ったら
ほんとだった
それはそれでよく考えたもんだなおい
測定をする?部署は凄いね
682デフォルトの名無しさん
2020/06/09(火) 21:38:09.42ID:khiSZY25683デフォルトの名無しさん
2020/06/09(火) 21:41:34.61ID:hYyeR2h+ プログラミングの基本も知らないレベルの人がコピペでツール作って業務に使用するって大丈夫なのか?
684デフォルトの名無しさん
2020/06/09(火) 21:45:05.79ID:FZrbGc0Z 少数以下の計算結果を同じにするのは、Excelでは一番難しい分野の一つ
たとえば銀行の利息とか、素人が作った数式だとまず合わない
たとえば銀行の利息とか、素人が作った数式だとまず合わない
685デフォルトの名無しさん
2020/06/09(火) 21:56:09.99ID:khiSZY25 この先も苦労するだろうし、もし重大な問題が起きた場合周りが迷惑するんだよな
686デフォルトの名無しさん
2020/06/09(火) 21:59:00.39ID:I+ooWyO2 馬鹿に教えても何かあるとまた頼るだけ
馬鹿に教えてもろくなことにならんぞ
その場で形だけ低姿勢にしてるだけで本音は違うからな
馬鹿に教えてもろくなことにならんぞ
その場で形だけ低姿勢にしてるだけで本音は違うからな
687デフォルトの名無しさん
2020/06/09(火) 22:01:59.19ID:0Bu4FXEm より正確な計算するのってcurrency型だっけ?
double使うより
double使うより
688デフォルトの名無しさん
2020/06/09(火) 22:10:25.08ID:OFRsK1Sh 向き不向き以前に学習する気が無い
689デフォルトの名無しさん
2020/06/09(火) 22:26:28.10ID:1rtAHViu 少数の計算はどの言語でやってもやっかい
なので普通は名の知れたライブラリを呼ぶ
自分で書くのは最後の手段
なので普通は名の知れたライブラリを呼ぶ
自分で書くのは最後の手段
690デフォルトの名無しさん
2020/06/09(火) 22:27:34.95ID:I+ooWyO2 >>687
違いがわからない馬鹿はコメントしなければ良いのに
違いがわからない馬鹿はコメントしなければ良いのに
691デフォルトの名無しさん
2020/06/09(火) 23:36:40.87ID:KturEXme スレチかもしれないけど他の方法も・・
>>651
VBA使わずにフォームコントロールのリスト選ぶだけで表示
https://i.imgur.com/SHqygJ1.png
>>661
HTAのVBSciptで
https://i.imgur.com/rvwycaA.png
>>651
VBA使わずにフォームコントロールのリスト選ぶだけで表示
https://i.imgur.com/SHqygJ1.png
>>661
HTAのVBSciptで
https://i.imgur.com/rvwycaA.png
692デフォルトの名無しさん
2020/06/10(水) 01:20:22.09ID:aAKpfJRW 学べない俺には刺さるわ、言い訳だが…
これだけは!っていう心臓部になるコードだけはネットで見つけて何とか繋げて作る
どこ弄ればどう変わるかだけ後で見ても絶対わかるようにコードより丁寧なコメントを残す
それさえ完成するともう安心して終わり
あとは簡単な挙動はテンプレがネットにあるからひろってくる
ユーザーフォームのボタンはで黄緑、黄色、水色を多用する
プロシージャ当てはめるだけで職場じゃパソコンの先生扱い
android端末やiPhoneの扱いならなぁ
近所でおばちゃまたちのスマホ教室を副業でやってるくらい詳しいのにっくそっ!
これだけは!っていう心臓部になるコードだけはネットで見つけて何とか繋げて作る
どこ弄ればどう変わるかだけ後で見ても絶対わかるようにコードより丁寧なコメントを残す
それさえ完成するともう安心して終わり
あとは簡単な挙動はテンプレがネットにあるからひろってくる
ユーザーフォームのボタンはで黄緑、黄色、水色を多用する
プロシージャ当てはめるだけで職場じゃパソコンの先生扱い
android端末やiPhoneの扱いならなぁ
近所でおばちゃまたちのスマホ教室を副業でやってるくらい詳しいのにっくそっ!
693デフォルトの名無しさん
2020/06/10(水) 05:20:40.78ID:9S1ZPIsx 趣味や勉強中ならわかるが仕事頼んだら理解してないネットのコピペもって来るような人にはもう頼めんだろ
694582
2020/06/10(水) 06:37:22.19ID:h6488s/K695デフォルトの名無しさん
2020/06/10(水) 08:27:35.36ID:ZDdhDfGU あいつは禿げたおっさんで体臭臭そうだけど、俺からみるとなかなか頑張ってると思うぜ
簡単な書籍買って一冊読んである程度まとまった知識得るといいわ
一年後にはここでふんぞりかえってレスしてると思うね
簡単な書籍買って一冊読んである程度まとまった知識得るといいわ
一年後にはここでふんぞりかえってレスしてると思うね
696デフォルトの名無しさん
2020/06/10(水) 16:06:12.58ID:alb8qwRt 買った本開いたの最初だけで、今は枕になってるぞ
697デフォルトの名無しさん
2020/06/10(水) 16:45:17.85ID:zxOaMDTC >>696
メルカリへ
メルカリへ
698デフォルトの名無しさん
2020/06/10(水) 17:48:53.56ID:GhRRuhdi >>696
くれ
くれ
699デフォルトの名無しさん
2020/06/10(水) 20:30:18.07ID:O8L9L3qt700デフォルトの名無しさん
2020/06/10(水) 20:43:31.30ID:O8L9L3qt なるほど、普段XとYの図面値が両方0な事も結構多い
そういうときはTextboxの1と3(XとYの図面値)のValueを0に設定しとけばいいのか
こういう事を本で基礎から学ばずスマホで調べて小ずるく終わらせるのが自分の学習性の無さ
、本当に駄目ですわ…
教えてくれた人への感謝と自分への落胆が酷い
もう生産部署に飛ばしてくれよ
そういうときはTextboxの1と3(XとYの図面値)のValueを0に設定しとけばいいのか
こういう事を本で基礎から学ばずスマホで調べて小ずるく終わらせるのが自分の学習性の無さ
、本当に駄目ですわ…
教えてくれた人への感謝と自分への落胆が酷い
もう生産部署に飛ばしてくれよ
701デフォルトの名無しさん
2020/06/10(水) 21:27:00.27ID:r05FbU6w フォームボタンを置いてそのシートで矢印押し続けるとセル移動が飛び飛びになるんだけど対処法ありますか?
とりあえずマクロ登録した図形にしたら発生しなくなったけど押した感ないから気持ち悪い
とりあえずマクロ登録した図形にしたら発生しなくなったけど押した感ないから気持ち悪い
702デフォルトの名無しさん
2020/06/10(水) 21:32:19.71ID:2cEQGA3C >>699
理解する気が無いからな
理解する気が無いからな
703デフォルトの名無しさん
2020/06/10(水) 21:34:24.10ID:2cEQGA3C >>701
本当に飛び飛びになってるかカーソル位置をdebug.printとかで確認してみろ
本当に飛び飛びになってるかカーソル位置をdebug.printとかで確認してみろ
704デフォルトの名無しさん
2020/06/10(水) 22:01:15.35ID:zJ0W6AlK705デフォルトの名無しさん
2020/06/10(水) 23:43:02.56ID:r05FbU6w706デフォルトの名無しさん
2020/06/11(木) 02:06:11.07ID:l/gRHUK3 馬鹿はこうやって厚かましく聞きだそうとする
707デフォルトの名無しさん
2020/06/11(木) 04:35:21.72ID:upd9DdGd 俺はあのおっさんはハゲで臭いけどできるやつだって思ってるわ
しゃちょーの器だ
頑張ったな、おっさん
しゃちょーの器だ
頑張ったな、おっさん
708デフォルトの名無しさん
2020/06/11(木) 05:50:14.88ID:p+d7/Y3X >>706
質問スレで何を言ってんだ?
質問スレで何を言ってんだ?
709デフォルトの名無しさん
2020/06/11(木) 07:33:56.10ID:Ppd1dcd+ 馬鹿って言いたいだけの人の相手しちゃダメ
710デフォルトの名無しさん
2020/06/11(木) 12:31:19.92ID:9UX6mR7k いや、学ばない俺でも流石にセルに反映されるボタンくらいは聞かずに作れたのでそこまでは聞いてないですよ
ボタンに
アクティブセルとテキストボックスのvalueを=の動きつけるだけだし
ボタンに
アクティブセルとテキストボックスのvalueを=の動きつけるだけだし
711デフォルトの名無しさん
2020/06/11(木) 14:46:24.05ID:xmZccwT9 その「だけ」の組み合わせなんだよなぁ
712デフォルトの名無しさん
2020/06/11(木) 15:47:31.15ID:fXLeDjMq 算数の問題で答えだけ合っていても計算式がないと正解にはならない
カンニングとみなされるって知らんのか
そうやって問題から逃げている初心者に教えることはない
カンニングとみなされるって知らんのか
そうやって問題から逃げている初心者に教えることはない
713デフォルトの名無しさん
2020/06/11(木) 15:50:35.95ID:fXLeDjMq ちょっと言いすぎたかな
714デフォルトの名無しさん
2020/06/11(木) 15:56:00.83ID:G1l0Tewu いや、それでいいんだよ
715デフォルトの名無しさん
2020/06/11(木) 16:13:44.92ID:HN+bic0j エクセル初心者はVBAなんて触らんし
VBAやマクロ禁止の部署もあるからなぁ
パートさんには入力欄とクリックのみだったりとか
まー初心者がこのスレ見ることもないか・・
VBAやマクロ禁止の部署もあるからなぁ
パートさんには入力欄とクリックのみだったりとか
まー初心者がこのスレ見ることもないか・・
716デフォルトの名無しさん
2020/06/11(木) 17:23:40.82ID:9UX6mR7k いやもう完成しました
感謝もしたし謝罪もします
計算式はPCないところで関数電卓使ったりするから嫌でもわかっとります
√( xズレ^2+yズレ^2) *2
VBAでもまず覚えようと思ったので
Xズレ→B列 Yズレ→C列 位置度→D列のデータの時
Dim s As Long
Do While Cells(s, 3) <> ""
Cells(s, 4) = Sqr(Cells(s, 2) ^ 2 + Cells(s, 3) ^ 2) * 2
Cells(s, 4) = Format(Cells(s, 4), "0.000")
s = s + 1
Loop
エンドサブちゃん
高卒には荷が重すぎ
高学歴でしょここの人達
感謝もしたし謝罪もします
計算式はPCないところで関数電卓使ったりするから嫌でもわかっとります
√( xズレ^2+yズレ^2) *2
VBAでもまず覚えようと思ったので
Xズレ→B列 Yズレ→C列 位置度→D列のデータの時
Dim s As Long
Do While Cells(s, 3) <> ""
Cells(s, 4) = Sqr(Cells(s, 2) ^ 2 + Cells(s, 3) ^ 2) * 2
Cells(s, 4) = Format(Cells(s, 4), "0.000")
s = s + 1
Loop
エンドサブちゃん
高卒には荷が重すぎ
高学歴でしょここの人達
717デフォルトの名無しさん
2020/06/11(木) 17:29:15.93ID:/dMXe1DS その言い訳がましいフレーズをレスに入れるから良くないって、今後は書き込む前に考えたほうがいいよ
ここはもう来なくてもいいから
ここはもう来なくてもいいから
718デフォルトの名無しさん
2020/06/11(木) 17:34:53.28ID:Gg4t4WTy 俺は計算系は答えられんがここは質問スレだからどんどんこい。
煽ってるだけの奴は何の目的でこのスレにするんだ。芸能人の話題待ちでもあるまいし。
自分の決め事があるならいいけど初心者は変数は後でわかるようにとにかく宣言すべし。
日本語だけはあまりお勧めしない。
煽ってるだけの奴は何の目的でこのスレにするんだ。芸能人の話題待ちでもあるまいし。
自分の決め事があるならいいけど初心者は変数は後でわかるようにとにかく宣言すべし。
日本語だけはあまりお勧めしない。
719582
2020/06/11(木) 19:31:53.23ID:lwV9wV8Y720デフォルトの名無しさん
2020/06/11(木) 20:34:47.38ID:upd9DdGd 特定の行・列を表示・非表示にするボタン使ってるんだけどさ
この行・列にActiveXの他のボタンがあったりなんかするこ、たまにこいつらが消滅するんだよなぁ
debug.printとかで位置確認すると確かにそこにいるんだけどHeight=0とかになってる
んで適当にSubプロシージャ作ってHeight=200とかに設定するんだけどだめ
ならない
エラーはかないけど、debug.printで確認してもぜぃろぉのまま
Deleteも効かない
てかエラー出る
オブジェクトの選択と表示からみると存在してる
再起動してもだめ
てかたまに開けなくなるw
しゃーないから、新しいシート作って、そこにシート全選択でこぴぺすると
表示されてるボタンはコピーされるが
消滅したボタン群だけはコピーされない
コピーされないってのは、オブジェクトの選択と表示にそいつらが出なくなることから判断してる
消えたやつは新しく作り直してる
まぁそうすると元に戻るんだけどさ
なんだか半分死んでて半分生きてるような感じなんだろうなぁ
お前らこういうことある?
この行・列にActiveXの他のボタンがあったりなんかするこ、たまにこいつらが消滅するんだよなぁ
debug.printとかで位置確認すると確かにそこにいるんだけどHeight=0とかになってる
んで適当にSubプロシージャ作ってHeight=200とかに設定するんだけどだめ
ならない
エラーはかないけど、debug.printで確認してもぜぃろぉのまま
Deleteも効かない
てかエラー出る
オブジェクトの選択と表示からみると存在してる
再起動してもだめ
てかたまに開けなくなるw
しゃーないから、新しいシート作って、そこにシート全選択でこぴぺすると
表示されてるボタンはコピーされるが
消滅したボタン群だけはコピーされない
コピーされないってのは、オブジェクトの選択と表示にそいつらが出なくなることから判断してる
消えたやつは新しく作り直してる
まぁそうすると元に戻るんだけどさ
なんだか半分死んでて半分生きてるような感じなんだろうなぁ
お前らこういうことある?
721蟻人間 ◆T6xkBnTXz7B0
2020/06/11(木) 20:43:48.25ID:9OB4DptL ActiveXはサポート終了でしょ
722デフォルトの名無しさん
2020/06/11(木) 20:47:39.72ID:upd9DdGd だってぇ・・・右クリで移動されちゃうボタンとかいやだもん
723デフォルトの名無しさん
2020/06/11(木) 21:20:07.19ID:v1OJq4JH Active S○X
724デフォルトの名無しさん
2020/06/11(木) 21:49:44.43ID:Pc/1Hill txt123 = objIE.document.all.tags("table")(2).outerText
でテキストを取得しました。
txt123 の中に授業表が入っています。
体育という単語が含まれていれば、A列のセルに〇、国語という単語が含まれていればB列に〇、
算数はC列・・・
という具合に特定の文字列が含まれていれば指定の列のセルに〇を入れたいのですが、
どうしたらいいでしょうか?
特定の文字列は国語、算数、体育、社会、理科の5つです。
でテキストを取得しました。
txt123 の中に授業表が入っています。
体育という単語が含まれていれば、A列のセルに〇、国語という単語が含まれていればB列に〇、
算数はC列・・・
という具合に特定の文字列が含まれていれば指定の列のセルに〇を入れたいのですが、
どうしたらいいでしょうか?
特定の文字列は国語、算数、体育、社会、理科の5つです。
725デフォルトの名無しさん
2020/06/11(木) 21:52:07.03ID:DFKeKDYT >>724
馬鹿は死ねば治るかもよ
馬鹿は死ねば治るかもよ
727デフォルトの名無しさん
2020/06/11(木) 22:00:18.32ID:vUhEmjDF >>724
こんなこともわからない頭の悪い奴に教えられる子供がどうなるか
こんなこともわからない頭の悪い奴に教えられる子供がどうなるか
728デフォルトの名無しさん
2020/06/11(木) 22:05:40.83ID:S8xfnPZH >>724
色々無理だと思うぞ。やめとけ。
色々無理だと思うぞ。やめとけ。
729デフォルトの名無しさん
2020/06/11(木) 22:28:34.49ID:Pc/1Hill730デフォルトの名無しさん
2020/06/11(木) 23:19:34.07ID:fXLeDjMq まさかと思うがテキストボックス123個とか作ってるんじゃないよな
731デフォルトの名無しさん
2020/06/11(木) 23:44:22.39ID:52kheZTp 何でそれでいきなりIE制御・・・。
732デフォルトの名無しさん
2020/06/12(金) 00:13:44.58ID:Y0E/tOto 授業表をIEで見るって社内システムがそれなのか?
733デフォルトの名無しさん
2020/06/12(金) 00:33:39.25ID:cWAZHeBV IE制御とかレガシーにも程があるだろ。。
734デフォルトの名無しさん
2020/06/12(金) 00:43:49.91ID:V6O8I1+o WebページのテーブルってエクセルのVBAで
IE以外にどうやって取得するの?
IE以外にどうやって取得するの?
735デフォルトの名無しさん
2020/06/12(金) 01:56:00.71ID:MW3IhN88 test
736デフォルトの名無しさん
2020/06/12(金) 02:10:15.74ID:MW3IhN88 選択した範囲のセル色を変えたいです。
If Intersect(Target, Range("B1:B5")) Is Nothing Then Exit Sub
色変更処理
変更可能なセルはB1:B5のみとしたいですが、
これだとB6が一緒に選択されている場合に一緒に色が変更されてしまいます。
B1:B6を囲ってしまった場合でも、B1:B5までの色のみ変更させたい場合どうしたらいいでしょうか。
If Intersect(Target, Range("B1:B5")) Is Nothing Then Exit Sub
色変更処理
変更可能なセルはB1:B5のみとしたいですが、
これだとB6が一緒に選択されている場合に一緒に色が変更されてしまいます。
B1:B6を囲ってしまった場合でも、B1:B5までの色のみ変更させたい場合どうしたらいいでしょうか。
737デフォルトの名無しさん
2020/06/12(金) 02:51:45.45ID:KALz8/u9 また馬鹿か
738デフォルトの名無しさん
2020/06/12(金) 03:29:37.08ID:IFmaagGk >>736
選択した範囲は選択されているのか?
選択した範囲は選択されているのか?
739デフォルトの名無しさん
2020/06/12(金) 06:26:26.47ID:u23pgbjD >>736
intersectした結果とTargetを比較したらいけないかな
intersectした結果とTargetを比較したらいけないかな
740デフォルトの名無しさん
2020/06/12(金) 07:59:23.12ID:d1Ad7gfn >>720
シートに配置したボタンでよく遭遇するよ。そんなもんだと思ってるから、ボタン押下時のコードに自分自身の位置とサイズを初期化するコードを書くようにしてる。
シートに配置したボタンでよく遭遇するよ。そんなもんだと思ってるから、ボタン押下時のコードに自分自身の位置とサイズを初期化するコードを書くようにしてる。
741デフォルトの名無しさん
2020/06/12(金) 08:22:21.81ID:F5wzc1/2 >>737
分からないからそれしか言えないのか?
分からないからそれしか言えないのか?
745デフォルトの名無しさん
2020/06/12(金) 12:46:47.02ID:HqN3pHW3 >>720
セルにあわせて移動やサイズ変更するかどうかの設定があったはずだが
セルにあわせて移動やサイズ変更するかどうかの設定があったはずだが
746デフォルトの名無しさん
2020/06/12(金) 13:13:42.59ID:1+2Rgw6z >>745
バージョン2010以降「セルに合わせてサイズ変更や移動しない」の設定になっていても
サイズが変わってしまう事例を多数経験しています。(2007は経験なし)
ボタンだけでなく、コメントの位置も極端に移動すること多数。
バージョン2010以降「セルに合わせてサイズ変更や移動しない」の設定になっていても
サイズが変わってしまう事例を多数経験しています。(2007は経験なし)
ボタンだけでなく、コメントの位置も極端に移動すること多数。
747デフォルトの名無しさん
2020/06/12(金) 13:14:30.95ID:hxFv/xna >>742
ヘェ〜そんな関数あるんだ、IEオブジェクトだけかと思ってた、ありがとう
ヘェ〜そんな関数あるんだ、IEオブジェクトだけかと思ってた、ありがとう
748デフォルトの名無しさん
2020/06/12(金) 17:49:02.54ID:aQA9YYrW749デフォルトの名無しさん
2020/06/12(金) 23:01:56.39ID:FlbnSBZd Windows10に変えたら、クロマキー合成みたいなのが出来なくなっちゃったんだけど、
何か方法ない?
何か方法ない?
750デフォルトの名無しさん
2020/06/12(金) 23:29:11.20ID:KALz8/u9 また馬鹿が来た
751デフォルトの名無しさん
2020/06/12(金) 23:57:17.59ID:FlbnSBZd752デフォルトの名無しさん
2020/06/13(土) 00:29:59.36ID:0QXppYe5 クロマキーはWin7まで。
ていうかクロマキーて・・。
確かにクロマキーだが。
ていうかクロマキーて・・。
確かにクロマキーだが。
753デフォルトの名無しさん
2020/06/13(土) 01:18:01.22ID:l5EmusQW 一旦あきらめて、真の目的を違う方法で達成することを考えましょう
754デフォルトの名無しさん
2020/06/13(土) 03:31:14.05ID:d/IEOBZf >>751
自分が言われたという自覚があるんだ?
自分が言われたという自覚があるんだ?
755デフォルトの名無しさん
2020/06/13(土) 06:33:26.28ID:iOfV/qX/756デフォルトの名無しさん
2020/06/13(土) 07:35:38.54ID:gm1IvgiV 質問スレなんてどこでも、マウントとって承認欲求を満たそうとする奴らばかりだよ。
特にVBAスレは、プログラミング板の他のスレでは相手にされないレベルの奴がここなら俺でもマウントとれるだろと集まってくる。
特にVBAスレは、プログラミング板の他のスレでは相手にされないレベルの奴がここなら俺でもマウントとれるだろと集まってくる。
757デフォルトの名無しさん
2020/06/13(土) 10:49:08.95ID:hwBvm+CU VBA始めて1週間
結構できるようになったけど、俺ってすごい!?
結構できるようになったけど、俺ってすごい!?
758デフォルトの名無しさん
2020/06/13(土) 11:02:28.88ID:iOfV/qX/ >>757
どうやって勉強した?どこまでできるようなった?
どうやって勉強した?どこまでできるようなった?
759デフォルトの名無しさん
2020/06/13(土) 12:54:09.65ID:l5EmusQW VBA完全に理解した
↓
VBAなにもわからない
↓
VBAチョットデキル
↓
VBAなにもわからない
↓
VBAチョットデキル
760デフォルトの名無しさん
2020/06/13(土) 13:53:12.35ID:sXc2xmOg 何を以て「できる」と判断したのか?
761デフォルトの名無しさん
2020/06/13(土) 13:57:01.18ID:k9PzEFx9 初心者の頃に書いたコードみるとマジナンだらけでチョベリバだわ
762デフォルトの名無しさん
2020/06/13(土) 14:05:41.14ID:GFk/ON+H 編集ができるってことじゃね
763デフォルトの名無しさん
2020/06/13(土) 14:17:20.43ID:Ft3NByW3 ダニングクルーガー効果とかいうやつじゃね
764デフォルトの名無しさん
2020/06/13(土) 15:41:58.59ID:9rN9x/HV VBAに限らないコーディング全般の話になるかと思うんですが、
For文のカウンタ変数に対してそのブロック内で加減算するのはいわゆる「お行儀が悪い」ものですか?
For i = min To min Step -1
For j = i + 1 To max
〜処理〜
If 条件 Then
〜処理〜
Let i = i + 1 '←ココ
〜処理〜
Else
〜処理〜
End If
〜処理〜
Next j
〜処理〜
Next i
前任者が使っていた20行にも満たないコードですが、1行目に違和感がありました。
Do While/Until文で書き直せるものの、単に自分の理解度が低いだけかもしれず・・・
For文のカウンタ変数に対してそのブロック内で加減算するのはいわゆる「お行儀が悪い」ものですか?
For i = min To min Step -1
For j = i + 1 To max
〜処理〜
If 条件 Then
〜処理〜
Let i = i + 1 '←ココ
〜処理〜
Else
〜処理〜
End If
〜処理〜
Next j
〜処理〜
Next i
前任者が使っていた20行にも満たないコードですが、1行目に違和感がありました。
Do While/Until文で書き直せるものの、単に自分の理解度が低いだけかもしれず・・・
765デフォルトの名無しさん
2020/06/13(土) 15:59:50.04ID:sXc2xmOg >>764
俺ならforにしないな
俺ならforにしないな
766デフォルトの名無しさん
2020/06/13(土) 16:03:06.99ID:hwBvm+CU データ用のシートからデータをコピーできるようになったぜ
ところでクラスモジュールにはどんなメリットがありますか?
functionの意味は分かりましたが、クラスとの違いなどがよく分からず
今本屋で色々探してきましたが、解説が見当たりませんでした。
ところでクラスモジュールにはどんなメリットがありますか?
functionの意味は分かりましたが、クラスとの違いなどがよく分からず
今本屋で色々探してきましたが、解説が見当たりませんでした。
767デフォルトの名無しさん
2020/06/13(土) 16:04:33.27ID:HDBeOIwd768デフォルトの名無しさん
2020/06/13(土) 16:05:08.13ID:ll49+YlL 一般的に、for nextの方が理解しやすいから、for 文ありきで書いてるだけなんじゃないかな。
感覚的にも可読性やメンテナンス性からも、do loopなどで書く方が良いと思います。
感覚的にも可読性やメンテナンス性からも、do loopなどで書く方が良いと思います。
769デフォルトの名無しさん
2020/06/13(土) 16:14:12.41ID:lPN2rvMv >>766
VBAのクラスはCOMとの相互運用のために存在する
普通に使う分には全く必要ない
というか並のVBAerのスキルではメンテ不能になるからむしろ有害
クラスを使いたくなるレベルの高度な抽象化が必要になるようなら、
そもそもそんなことをVBAでやらなければならないシステム設計が間違っていると考えるべき
VBAのクラスはCOMとの相互運用のために存在する
普通に使う分には全く必要ない
というか並のVBAerのスキルではメンテ不能になるからむしろ有害
クラスを使いたくなるレベルの高度な抽象化が必要になるようなら、
そもそもそんなことをVBAでやらなければならないシステム設計が間違っていると考えるべき
770デフォルトの名無しさん
2020/06/13(土) 16:49:04.82ID:9rN9x/HV771デフォルトの名無しさん
2020/06/13(土) 16:50:17.97ID:hwBvm+CU >769
ありがとうございます。
そこまでの説明が探しきれなかったので助かります。
ありがとうございます。
そこまでの説明が探しきれなかったので助かります。
772デフォルトの名無しさん
2020/06/13(土) 16:52:28.00ID:69sGe9cG >>764
Forの使い方を間違ってる
途中で1足して、最後にまた1引くんなら、Do LoopとIfなどを使って条件をはっきり書くべき
プログラミング全般の話となると、コンパイラによっては最初にStep値で割り算して回数を求めてしまうコードを吐くやつもあるので、正常に動かなくなる
Forの使い方を間違ってる
途中で1足して、最後にまた1引くんなら、Do LoopとIfなどを使って条件をはっきり書くべき
プログラミング全般の話となると、コンパイラによっては最初にStep値で割り算して回数を求めてしまうコードを吐くやつもあるので、正常に動かなくなる
773デフォルトの名無しさん
2020/06/13(土) 18:20:23.36ID:gmb5Wcnr ブックのなかに、シートがたくさんあって、
マクロ利用者毎にマクロで動かしたいシートが違う。
だから、マクロの実行中に、利用者にシートを選択させて、それをactivesheetにさせたい。
そういうの、できる?
マクロ利用者毎にマクロで動かしたいシートが違う。
だから、マクロの実行中に、利用者にシートを選択させて、それをactivesheetにさせたい。
そういうの、できる?
774デフォルトの名無しさん
2020/06/13(土) 18:31:43.88ID:sXc2xmOg できる
775デフォルトの名無しさん
2020/06/13(土) 18:35:00.95ID:Q06gyfKt776デフォルトの名無しさん
2020/06/13(土) 18:38:57.44ID:gmb5Wcnr777デフォルトの名無しさん
2020/06/13(土) 18:42:11.92ID:ejIEXNUq778デフォルトの名無しさん
2020/06/13(土) 18:54:40.10ID:Q06gyfKt779デフォルトの名無しさん
2020/06/13(土) 18:56:13.87ID:gmb5Wcnr780デフォルトの名無しさん
2020/06/13(土) 18:56:56.64ID:gmb5Wcnr >>779
マクロを途中で止めて、利用者にシートを選択させることによって(そのシートのどこかのセルを選択させる)、activesheetにさせたいんよ。
マクロを途中で止めて、利用者にシートを選択させることによって(そのシートのどこかのセルを選択させる)、activesheetにさせたいんよ。
781デフォルトの名無しさん
2020/06/13(土) 19:11:25.34ID:Ft3NByW3 自分でシートを開いてその後マクロを実行する形じゃダメなの
782デフォルトの名無しさん
2020/06/13(土) 19:20:55.22ID:gmb5Wcnr783デフォルトの名無しさん
2020/06/13(土) 19:50:08.25ID:mObNCAEc784デフォルトの名無しさん
2020/06/13(土) 20:02:21.69ID:gmb5Wcnr785デフォルトの名無しさん
2020/06/13(土) 20:08:18.16ID:Q06gyfKt マクロの途中で>>777で作ったUserForm1.Showすりゃ良いでしょう
786デフォルトの名無しさん
2020/06/13(土) 20:23:03.52ID:mObNCAEc787デフォルトの名無しさん
2020/06/13(土) 20:28:03.66ID:sXc2xmOg >>780
途中でセル選択ダイアログでも表示すりゃいいじゃん
途中でセル選択ダイアログでも表示すりゃいいじゃん
788デフォルトの名無しさん
2020/06/13(土) 20:36:43.64ID:gmb5Wcnr789デフォルトの名無しさん
2020/06/13(土) 20:42:30.13ID:gmb5Wcnr >>786
やっぱ、いけるかも。
やっぱ、いけるかも。
790デフォルトの名無しさん
2020/06/13(土) 20:42:48.59ID:gmb5Wcnr >>787
ありがと。いけるかも。
ありがと。いけるかも。
791デフォルトの名無しさん
2020/06/14(日) 08:41:44.12ID:ffGowWaR >>788
よく分からんがモードレスにすりゃ良いんじゃねえの?
よく分からんがモードレスにすりゃ良いんじゃねえの?
792デフォルトの名無しさん
2020/06/14(日) 11:14:04.92ID:uWyGdyFQ793デフォルトの名無しさん
2020/06/14(日) 11:20:05.40ID:ZfTKHz7W >>792
モジュールと構造体でいいよねそれ
モジュールと構造体でいいよねそれ
794デフォルトの名無しさん
2020/06/14(日) 11:21:47.96ID:435IzS7y VBA歴まだ1ヶ月
でtxtデータから全て数値をシートに引っ張り出す事は成功したけどそれをVBAで計算させるスキルはないからエクセル関数使ってる
もっとスキルが欲しい
でtxtデータから全て数値をシートに引っ張り出す事は成功したけどそれをVBAで計算させるスキルはないからエクセル関数使ってる
もっとスキルが欲しい
795デフォルトの名無しさん
2020/06/14(日) 12:36:35.03ID:PywPq9gj 関数でできることは関数でやりましょう(例外あり)
796デフォルトの名無しさん
2020/06/14(日) 12:52:53.71ID:UBYu/Pyg 関数ばかりでもいかんですう
797デフォルトの名無しさん
2020/06/14(日) 13:01:56.80ID:435IzS7y 引っ張り出した数値を
ABS関数
ROUND関数
MAX、MIN関数
IF関数
でだんだんフィルターを通す感覚で
で本来の数値に対応させてる
VBAでそれをやる力を得るには5年はかかるな
俺じゃ
ABS関数
ROUND関数
MAX、MIN関数
IF関数
でだんだんフィルターを通す感覚で
で本来の数値に対応させてる
VBAでそれをやる力を得るには5年はかかるな
俺じゃ
798デフォルトの名無しさん
2020/06/14(日) 13:26:59.00ID:0qngbhsm 限定的な使い方になるが、連想配列でユーザ定義型使いたい時に代わりにクラスモジュール使うって手がある
799デフォルトの名無しさん
2020/06/14(日) 13:44:32.79ID:attwzNFV 質問ですが、列が3つありそのうち2つが検索用ワードで
これを元に検索し3つ目のセルにあるワードを配列に収めていく処理を行いたいです。
例えば、こういったテーブルがあります。
すずき、いちろう、170
すずき、じろう、171
たなか、さぶろう、172
検索条件を1列目「すずき」2列目「条件なし」とした時、170,171を配列に収める
検索条件を1列目「すずき」2列目「いちろう」とした時、170を配列に収める
と、やろうとした時どういった処理が考えられるでしょうか。
これを元に検索し3つ目のセルにあるワードを配列に収めていく処理を行いたいです。
例えば、こういったテーブルがあります。
すずき、いちろう、170
すずき、じろう、171
たなか、さぶろう、172
検索条件を1列目「すずき」2列目「条件なし」とした時、170,171を配列に収める
検索条件を1列目「すずき」2列目「いちろう」とした時、170を配列に収める
と、やろうとした時どういった処理が考えられるでしょうか。
800デフォルトの名無しさん
2020/06/14(日) 13:51:33.71ID:nNGIeJAo データベースのアンド検索クエリ覚えなはれ
801デフォルトの名無しさん
2020/06/14(日) 13:52:24.03ID:0qngbhsm >>799
オートフィルタで抽出して3列目を配列に格納
オートフィルタで抽出して3列目を配列に格納
802デフォルトの名無しさん
2020/06/14(日) 14:09:01.53ID:NfMb0cpJ803デフォルトの名無しさん
2020/06/14(日) 14:16:14.71ID:UBYu/Pyg >>799
逆にどういった処理も考えられないの?
逆にどういった処理も考えられないの?
804デフォルトの名無しさん
2020/06/14(日) 14:28:07.65ID:attwzNFV ありがとうございます。
テーブル化の方向で調べてみます。
テーブル化の方向で調べてみます。
805デフォルトの名無しさん
2020/06/14(日) 17:08:34.92ID:zv9EPLCI ユーザー定義関数をさ、AutoFill使って連続した複数セルに「=MyFunction()」みたいな感じで
代入していくじゃん
数式は正確に代入されてるのになぜか#VALUE!のエラーがでるんだよなぁ
計算対象になってるセルの1つをダブルクリックして値を入力するモードにしてから
そのまま何もしないでエンター押すと、さっきまで#VALUE!だったところが
再計算されて正常にセルに表示される
オートフィルに備えて連続セルの一番先頭にVBAから個別に代入しておいたセルがあるんだけど
ここはちゃんと計算結果がでてる
んで、このセルを始点にして手動でオートフィルかけて数式いれるとちゃんと計算される
手動オートフィルの結果代入された数式とVBAのAutoFill使って代入した数式を比較しても全く同じ
でもVBAのほうだけは#VALUE!ですわ
これ一体なんなのさ
一通り調べてわからんかったからAutoFillやめてForで回していれたった
やっぱ俺にはこういう原始人的なコードがあってるわ
代入していくじゃん
数式は正確に代入されてるのになぜか#VALUE!のエラーがでるんだよなぁ
計算対象になってるセルの1つをダブルクリックして値を入力するモードにしてから
そのまま何もしないでエンター押すと、さっきまで#VALUE!だったところが
再計算されて正常にセルに表示される
オートフィルに備えて連続セルの一番先頭にVBAから個別に代入しておいたセルがあるんだけど
ここはちゃんと計算結果がでてる
んで、このセルを始点にして手動でオートフィルかけて数式いれるとちゃんと計算される
手動オートフィルの結果代入された数式とVBAのAutoFill使って代入した数式を比較しても全く同じ
でもVBAのほうだけは#VALUE!ですわ
これ一体なんなのさ
一通り調べてわからんかったからAutoFillやめてForで回していれたった
やっぱ俺にはこういう原始人的なコードがあってるわ
806デフォルトの名無しさん
2020/06/14(日) 17:36:38.72ID:0qngbhsm >>805
計算対象のセルが更新された時自動で関数が処理される設定になってないから
計算対象のセルが更新された時自動で関数が処理される設定になってないから
807デフォルトの名無しさん
2020/06/14(日) 17:49:03.80ID:AaZP5Hye808デフォルトの名無しさん
2020/06/14(日) 18:50:39.41ID:zv9EPLCI >>806
手動・自動のやつでしょ
もちろん自動になってるわ
Forで回して数式代入したときは普通に計算されるから理由としてはいまいちじゃね
あと手動でオートフィルしてもいけるしね
表の右端に何列か並んでる数式は全部計算されるんだけど
下端にあるやつがだめなんだよね
どちらも全く同じパターンで代入してんだよね
まぁForでできるからいいんだけどな
手動・自動のやつでしょ
もちろん自動になってるわ
Forで回して数式代入したときは普通に計算されるから理由としてはいまいちじゃね
あと手動でオートフィルしてもいけるしね
表の右端に何列か並んでる数式は全部計算されるんだけど
下端にあるやつがだめなんだよね
どちらも全く同じパターンで代入してんだよね
まぁForでできるからいいんだけどな
809デフォルトの名無しさん
2020/06/14(日) 19:19:38.26ID:0qngbhsm810デフォルトの名無しさん
2020/06/14(日) 20:00:28.24ID:Nip9LUw0 >>809
volatile (揮発性) じゃね?
volatile (揮発性) じゃね?
811デフォルトの名無しさん
2020/06/14(日) 20:18:20.66ID:95POjxnT812デフォルトの名無しさん
2020/06/14(日) 21:59:15.66ID:NTnc+gBz >807
本人?。GW終わって更新控えめな気がする
本人?。GW終わって更新控えめな気がする
813デフォルトの名無しさん
2020/06/15(月) 00:54:28.92ID:otdT67Yk フォームを開いている際にセルをクリックしようとしても阻止されるんですが、
この行動を行った際にフォームを閉じるという処理をすることはできますか?
この行動を行った際にフォームを閉じるという処理をすることはできますか?
814デフォルトの名無しさん
2020/06/15(月) 00:59:25.05ID:AC0AKbql ユーザーフォームのイベントで制御できなきゃ無理じゃね
一覧くらい見たんだろ
一覧くらい見たんだろ
815デフォルトの名無しさん
2020/06/15(月) 02:14:12.45ID:VIqxNPAl816デフォルトの名無しさん
2020/06/15(月) 05:44:07.25ID:YCbdWLsV817デフォルトの名無しさん
2020/06/15(月) 10:48:29.20ID:zn0xvlk+ >>816
ボタンのコードの後ろに、Application.Calculate とかを入れる
ボタンのコードの後ろに、Application.Calculate とかを入れる
818デフォルトの名無しさん
2020/06/15(月) 11:02:05.93ID:zn0xvlk+ >>813
フォームを閉じるにはUnload ステートメント、非表示にするだけなら hide メソッドを使う
セルクリックが目的なら、ShowModal=False か、フォームのShowメソッドで vbModeless を指定すれば、閉じなくてもいいよ
フォームを閉じるにはUnload ステートメント、非表示にするだけなら hide メソッドを使う
セルクリックが目的なら、ShowModal=False か、フォームのShowメソッドで vbModeless を指定すれば、閉じなくてもいいよ
819デフォルトの名無しさん
2020/06/15(月) 22:32:32.01ID:qQkMiS3I >>816
よくわかってなくてすまぬが数式入ってるセル全部選択して
Selection.Value = Selection.Value
とか「=」を「=」に置換するとかして内容同じだけど編集したことにすると
全部計算される、ってのは根本的な解決方法じゃないけどそれは別の問題?
よくわかってなくてすまぬが数式入ってるセル全部選択して
Selection.Value = Selection.Value
とか「=」を「=」に置換するとかして内容同じだけど編集したことにすると
全部計算される、ってのは根本的な解決方法じゃないけどそれは別の問題?
820デフォルトの名無しさん
2020/06/15(月) 22:40:50.61ID:eWIek9um >>819
代入で再計算させるなら formula = formula だぞ
代入で再計算させるなら formula = formula だぞ
821デフォルトの名無しさん
2020/06/15(月) 22:42:03.32ID:GtKitEiM このスレの住民ってVBAエキスパートとか余裕な感じ?
822デフォルトの名無しさん
2020/06/15(月) 22:58:28.87ID:MWB6z4Ac 余裕でダメだと思う。
運転歴20年のやつが、教習所の学科試験に通るかどうか。
運転歴20年のやつが、教習所の学科試験に通るかどうか。
823デフォルトの名無しさん
2020/06/16(火) 01:37:43.85ID:vbVHH0Hs 練習問題を見た感じ、満点は無理だけど合格はできると思う
824デフォルトの名無しさん
2020/06/16(火) 02:23:10.96ID:4czdKWOA 人によるだろう
825デフォルトの名無しさん
2020/06/16(火) 08:13:35.35ID:4RAL3CE7 >>817
それ以前試してだめでしたわ
>>819
>>820
解決方法なのかどうかは置いておいて、面白い視点だなって思いました
Selection.Formula = Selection.Formula で、問題のあった2行のうち1行は行けました
この2行の違いを分析すると何か見えてくるかもしれないなぁ
似たような方法なんだけど、これはいけた
Dim ary
ary = Sheet1.Range("G11:AH11")
Sheet1.Range("G11:AH11") = ary
数式は表の最下部の行 G50:AH50 の各セルに入っていて、
例えばG50の数式はG11を引数の一部として使っている
計算の対象となっている値の一部を代入し直してみたってこと
Forで回して数式入れていくのは見た目ごちゃごちゃするから
わかりやすさっていう点ではこっちの方がいいのかな
それ以前試してだめでしたわ
>>819
>>820
解決方法なのかどうかは置いておいて、面白い視点だなって思いました
Selection.Formula = Selection.Formula で、問題のあった2行のうち1行は行けました
この2行の違いを分析すると何か見えてくるかもしれないなぁ
似たような方法なんだけど、これはいけた
Dim ary
ary = Sheet1.Range("G11:AH11")
Sheet1.Range("G11:AH11") = ary
数式は表の最下部の行 G50:AH50 の各セルに入っていて、
例えばG50の数式はG11を引数の一部として使っている
計算の対象となっている値の一部を代入し直してみたってこと
Forで回して数式入れていくのは見た目ごちゃごちゃするから
わかりやすさっていう点ではこっちの方がいいのかな
826デフォルトの名無しさん
2020/06/16(火) 12:20:48.09ID:6wBq1IET827デフォルトの名無しさん
2020/06/16(火) 19:13:50.26ID:Kui7C9E3 リストビューなるものを触ってみましたが2点分からないです。
@データを転記する際にwith文を使うとうまく出来て、使わないと一行ずつズレるのは?
Me.ListItems.Add
.Text = 111
.SubItems(1) = 222
.SubItems(2) = 333
End With
Addして追加だからズレるのだろうけど、withって単なる省略だから同じ意味じゃないの?
A転記したリストビュー全項目ループするにはどうしたいいですか?
@データを転記する際にwith文を使うとうまく出来て、使わないと一行ずつズレるのは?
Me.ListItems.Add
.Text = 111
.SubItems(1) = 222
.SubItems(2) = 333
End With
Addして追加だからズレるのだろうけど、withって単なる省略だから同じ意味じゃないの?
A転記したリストビュー全項目ループするにはどうしたいいですか?
828デフォルトの名無しさん
2020/06/16(火) 20:14:01.04ID:v7FumBBx Doしたらいい
829デフォルトの名無しさん
2020/06/16(火) 21:46:13.61ID:aBdT/SFF いや呼び方の問題とか、FormatだのStrComp関数だのあんまり使わんの出るから模試はやったほうがいいよ
830デフォルトの名無しさん
2020/06/16(火) 21:52:16.10ID:aBdT/SFF831デフォルトの名無しさん
2020/06/16(火) 21:57:13.61ID:aBdT/SFF 項目じゃなくてリストの間違いだった
832デフォルトの名無しさん
2020/06/16(火) 22:40:42.45ID:woSalLPH >>825
Selection.Calculate でもダメなんですよね?
Selection.Calculate でもダメなんですよね?
833デフォルトの名無しさん
2020/06/16(火) 23:47:36.73ID:cErksS8E834デフォルトの名無しさん
2020/06/17(水) 00:48:13.69ID:VnGmvv1H >>833
表示形式反映させるなら.Formula = .Formula では
表示形式反映させるなら.Formula = .Formula では
835デフォルトの名無しさん
2020/06/17(水) 13:19:05.23ID:vz74rE0X .Shimura = .Ushiro
836デフォルトの名無しさん
2020/06/17(水) 15:24:21.32ID:3v2Pocgc そのコマンド打ったら参照先が見つかりませんってエラーが出たんだが
837デフォルトの名無しさん
2020/06/17(水) 15:55:47.59ID:F6Gn58oB だめだこりゃ!
838デフォルトの名無しさん
2020/06/17(水) 17:19:39.75ID:AebhaO3Q 前スレの人達のくれた今の職場にいる限り永久に使える心臓部になるプロシージャ3つ
これのおかげで救われた
後はひたすら勉強しないといけない
ただそのせいで毎日夜中の2時とかまで強迫観念に捕らわれたように本やサイト見て体壊しかけてる
前スレの人達ありがとう
これのおかげで救われた
後はひたすら勉強しないといけない
ただそのせいで毎日夜中の2時とかまで強迫観念に捕らわれたように本やサイト見て体壊しかけてる
前スレの人達ありがとう
839デフォルトの名無しさん
2020/06/17(水) 17:52:05.46ID:VnGmvv1H 独り言板へどうぞ
840デフォルトの名無しさん
2020/06/17(水) 18:14:13.33ID:LyT08W7k そこまで初心者の人がやらなきゃいけないのか…
専門の派遣でも雇えば…
専門の派遣でも雇えば…
841デフォルトの名無しさん
2020/06/17(水) 18:25:49.09ID:1+VGIPZ0 >838
前スレのどれ?
前スレのどれ?
842デフォルトの名無しさん
2020/06/17(水) 19:41:41.88ID:3u8uTgOs まあ嘘だろうけどな、そんなん
843デフォルトの名無しさん
2020/06/17(水) 20:29:26.87ID:Pc4G9CL1 前スレ見えないけど
フォルダ内のテキストすべての特定の部位から文字を全部抽出するコード
これです
フォルダ内のテキストすべての特定の部位から文字を全部抽出するコード
これです
844デフォルトの名無しさん
2020/06/17(水) 20:47:48.75ID:6I8rhd2p 車輪の再発明どころか劣化真似事をありがたがるような馬鹿は消えろよ
845デフォルトの名無しさん
2020/06/17(水) 21:02:20.52ID:UkLP/htk >>834
数式を値で張り付けたときに表示形式が反映されなかったんでValueだったんですよ
数式を値で張り付けたときに表示形式が反映されなかったんでValueだったんですよ
846デフォルトの名無しさん
2020/06/17(水) 21:30:10.13ID:VnGmvv1H >>845
値貼り付けでは反映されんよ
値貼り付けでは反映されんよ
847デフォルトの名無しさん
2020/06/18(木) 00:14:55.64ID:+xg8PxB0 下記のような2次元配列があります。
1,りんご
2,ばなな
3.みかん
これの果物名の列だけをセルに代入したいですが、簡単な方法はありますか?
現状、果物の列を一端列数0の配列に入れなおしてそのままセルに代入する案しか思いつきませんが、
もっとスマートな方法あれば教えてください。
1,りんご
2,ばなな
3.みかん
これの果物名の列だけをセルに代入したいですが、簡単な方法はありますか?
現状、果物の列を一端列数0の配列に入れなおしてそのままセルに代入する案しか思いつきませんが、
もっとスマートな方法あれば教えてください。
848デフォルトの名無しさん
2020/06/18(木) 00:29:49.38ID:b73sLWwm 行列入れ替えは考慮外なの?
参考は沢山出てくる
EXCELのVBAで2次元配列の特定の列または行を1次元配列に変換する方法
qiita.com/takahasinaoki/items/1295c3df5ddfb13bdf8e
参考は沢山出てくる
EXCELのVBAで2次元配列の特定の列または行を1次元配列に変換する方法
qiita.com/takahasinaoki/items/1295c3df5ddfb13bdf8e
849デフォルトの名無しさん
2020/06/18(木) 01:18:10.70ID:AEhoYLDr >>847
3だけピリオド
3だけピリオド
850デフォルトの名無しさん
2020/06/18(木) 08:45:41.41ID:CbKzbr3Z >>847
貼り付け先の果物の前の列が消されても良いなら配列から1、2、3消してそのまま貼り付ける。
駄目なら貼り付け先の値を配列に入れてから貼り付ける。
貼り付け先の値を入れるのは本末転倒だからそういうデータが少ない場合以外は勧めない。
貼り付け先の果物の前の列が消されても良いなら配列から1、2、3消してそのまま貼り付ける。
駄目なら貼り付け先の値を配列に入れてから貼り付ける。
貼り付け先の値を入れるのは本末転倒だからそういうデータが少ない場合以外は勧めない。
851デフォルトの名無しさん
2020/06/18(木) 09:42:50.65ID:1Z+MjfLn >>847
地道に入れ直すしかない
地道に入れ直すしかない
852デフォルトの名無しさん
2020/06/18(木) 15:10:31.12ID:JIQPCGLI てか配列から直接セルに代入しないといけないってのは
データ数が多いとか速度重視したいとか?
そうでないなら基本通りにFor使って入れりゃいいだけなんだけど
データ数が多いとか速度重視したいとか?
そうでないなら基本通りにFor使って入れりゃいいだけなんだけど
853デフォルトの名無しさん
2020/06/18(木) 15:51:42.38ID:AEhoYLDr セルに入れるのがそもそも簡単なのに何ができないんだかわからん
854デフォルトの名無しさん
2020/06/18(木) 16:29:20.31ID:DGNmlHkR おまいら質問をちゃんと読んでるか?
「簡単な方法はありますか?」なんだから、Forで回すのは嫌ってことだろ
つまり回答は「そんな方法はない」
「簡単な方法はありますか?」なんだから、Forで回すのは嫌ってことだろ
つまり回答は「そんな方法はない」
855デフォルトの名無しさん
2020/06/18(木) 16:32:36.54ID:DGNmlHkR ステップ数を減らしたいだけなら、一旦そのまま全部ワークシートに入れて2列目だけコピペか1行目を削除すれば数行で完結する
たぶんForより速い
たぶんForより速い
856デフォルトの名無しさん
2020/06/18(木) 16:33:11.78ID:DGNmlHkR 書き間違い→1列目を削除
857デフォルトの名無しさん
2020/06/18(木) 17:30:14.12ID:AEhoYLDr 質問がどっかの問題の引用っぽく感じたので答えはかかないけどね
858デフォルトの名無しさん
2020/06/18(木) 17:38:49.86ID:Kimfxpnn 同じ社員同士なのにエクセルの便利機能とかを
情報共有しないのってなんなんだろう
情報共有しないのってなんなんだろう
859デフォルトの名無しさん
2020/06/18(木) 17:57:51.44ID:1Z+MjfLn ループからの抜け方、@とAどっちが推奨?
@
do while
for
if
脱出フラグ = true
exit for
end if
next
if 脱出フラグ then exit do
loop
A
do while
for
if 脱出条件 then exit do
next
loop
@
do while
for
if
脱出フラグ = true
exit for
end if
next
if 脱出フラグ then exit do
loop
A
do while
for
if 脱出条件 then exit do
next
loop
860デフォルトの名無しさん
2020/06/18(木) 17:57:55.15ID:AEhoYLDr 嫌われているんだろ
861デフォルトの名無しさん
2020/06/18(木) 17:58:44.91ID:1Z+MjfLn >>858
今まで関わった職場わりとしてるが
今まで関わった職場わりとしてるが
862859
2020/06/18(木) 18:01:15.31ID:1Z+MjfLn @の3行目のifは脱出条件な
863デフォルトの名無しさん
2020/06/18(木) 18:12:03.89ID:AEhoYLDr864デフォルトの名無しさん
2020/06/18(木) 19:24:08.22ID:LKxMxESP do whileの条件とifの条件ををandで繋いでdo while
loop行の前でi=i+1(forのカウンタ代わり)
これでよいのでは
loop行の前でi=i+1(forのカウンタ代わり)
これでよいのでは
865デフォルトの名無しさん
2020/06/18(木) 19:39:21.23ID:ck4WAMd+ GoToの使用を躊躇しない。
866デフォルトの名無しさん
2020/06/18(木) 19:42:12.81ID:1Z+MjfLn >>864
二重ループの抜け方の作法を聞いてるんだが
二重ループの抜け方の作法を聞いてるんだが
867デフォルトの名無しさん
2020/06/18(木) 19:48:21.18ID:KBH9L3ob do whileとforで2重ループするのが確定で、外側まで一気に抜けるのが確定なら2を選ばない理由がない
868デフォルトの名無しさん
2020/06/18(木) 19:53:02.72ID:DGNmlHkR >>866
二重ループの内側から一気に抜けたい時は、俺なら内側のループを別プロシージャにするか、Do Loopを二重にする
コード量によってはフラグ変数やExitは見通しが悪くなる、別の言い方をすれば終了条件がわかりづらくなるからあんまり使いたくない
二重ループの内側から一気に抜けたい時は、俺なら内側のループを別プロシージャにするか、Do Loopを二重にする
コード量によってはフラグ変数やExitは見通しが悪くなる、別の言い方をすれば終了条件がわかりづらくなるからあんまり使いたくない
869デフォルトの名無しさん
2020/06/18(木) 20:17:54.42ID:1Z+MjfLn870デフォルトの名無しさん
2020/06/18(木) 20:18:23.62ID:1Z+MjfLn 間違えたわ>>863だ
871デフォルトの名無しさん
2020/06/18(木) 20:21:15.52ID:ao9b7VBW >>859
囲碁なら上、オセロなら下
囲碁なら上、オセロなら下
872デフォルトの名無しさん
2020/06/18(木) 20:25:42.22ID:eqFwPDXL すごく個人的には、Do Untilで書いた方が「抜ける!」って読みやすい
873デフォルトの名無しさん
2020/06/18(木) 20:26:39.51ID:eqFwPDXL Do whileよりって話ね
そう書けば抜ける複数条件をDoの後ろに書いて違和感が無い
そう書けば抜ける複数条件をDoの後ろに書いて違和感が無い
874デフォルトの名無しさん
2020/06/18(木) 20:28:18.94ID:XkUbux+a これ… >>871に『その心は?』って聞いてあげた方がいいの?
875デフォルトの名無しさん
2020/06/18(木) 20:33:29.27ID:ao9b7VBW >>874
おじいちゃん出しっぱなしで片付けないんだもん
おじいちゃん出しっぱなしで片付けないんだもん
876デフォルトの名無しさん
2020/06/18(木) 20:34:24.21ID:vZk8Xm54 Gotoはもちろんのこと、余程のことがない限りはExit For(Do)使うよりはExit Function使った方がいい
877デフォルトの名無しさん
2020/06/18(木) 21:01:16.76ID:ob2ctoKl >>876
そんなこたあね―な。
そんなこたあね―な。
878デフォルトの名無しさん
2020/06/18(木) 22:48:55.15ID:Swy0cO/s Do While
何で
Loop
While
2つあるの?
Wend
何で
Loop
While
2つあるの?
Wend
879デフォルトの名無しさん
2020/06/18(木) 23:00:26.73ID:6Vkb8BK5 vbaだから
880デフォルトの名無しさん
2020/06/18(木) 23:21:26.57ID:1Z+MjfLn881デフォルトの名無しさん
2020/06/18(木) 23:40:35.48ID:Cax/ofky 一応、while wendは最後までループ抜けさせないぞって読ませ方ができる
知ってる人が少なくなってるからむしろ逆効果のお節介となってきているが
知ってる人が少なくなってるからむしろ逆効果のお節介となってきているが
882デフォルトの名無しさん
2020/06/19(金) 00:17:23.49ID:NwluTwH5 行番号とか代入のLetとかも使ってるやつはいない
過去の名残があちこちにあるのがVBA
過去の名残があちこちにあるのがVBA
883デフォルトの名無しさん
2020/06/19(金) 08:29:01.10ID:VZXzW3Q1 do while〜loopって構文が気に食わんわ
do [処理] while [脱出判定] loop
もしくは
while [脱出判定] do [処理] loop
のほうが思考に沿う
ってかdo必要?
do [処理] while [脱出判定] loop
もしくは
while [脱出判定] do [処理] loop
のほうが思考に沿う
ってかdo必要?
884デフォルトの名無しさん
2020/06/19(金) 09:57:59.84ID:UXZn7YtP VBA必要?
885デフォルトの名無しさん
2020/06/19(金) 09:58:43.65ID:wZIpnWDZ Excelが必要としてるんだ
886デフォルトの名無しさん
2020/06/19(金) 16:55:48.19ID:8jNiNgQB だってVBAだから
887デフォルトの名無しさん
2020/06/19(金) 18:51:31.92ID:c4aN/6Uq エクセルマクロとして代替えがないから必要だな
888デフォルトの名無しさん
2020/06/19(金) 21:17:20.11ID:RlTsj/W2 職場の人が書くマクロ、わかりやすいんだけど無駄改行多くてスクロールしないと全体像掴めないでつらい
889デフォルトの名無しさん
2020/06/19(金) 21:26:36.78ID:8GB492Jb890デフォルトの名無しさん
2020/06/19(金) 23:55:48.34ID:+/P4LWyU >>888
実は強制終了対策で改行してるとか?
実は強制終了対策で改行してるとか?
891デフォルトの名無しさん
2020/06/20(土) 00:04:01.39ID:6cdt+s4Y >>883
構文解析でトークンの先読みが少なくて済むための配慮じゃないかな、知らんけど
構文解析でトークンの先読みが少なくて済むための配慮じゃないかな、知らんけど
892デフォルトの名無しさん
2020/06/20(土) 00:41:32.09ID:YZMPfrl8 >>883
英語として
Do while a is b. If a is bigger than b, then break..
というのと
While if a is bigger than a, do something.
どちらが自然かという問題だったようだ。どっちも変だけど
英語として
Do while a is b. If a is bigger than b, then break..
というのと
While if a is bigger than a, do something.
どちらが自然かという問題だったようだ。どっちも変だけど
893デフォルトの名無しさん
2020/06/20(土) 02:09:29.21ID:qvmNBmpu >>888
職場での問題なら職場内で解決しなされ
職場での問題なら職場内で解決しなされ
894デフォルトの名無しさん
2020/06/20(土) 04:41:54.35ID:heakYJWv ちょ、VBAのCollectionのAddメソッドってvalue/keyの順番だったのかよぉ
C#もJavaもPythonもkey/valueの順だから勘違いしてたわ!
なんかおかしいとおもった
C#もJavaもPythonもkey/valueの順だから勘違いしてたわ!
なんかおかしいとおもった
895デフォルトの名無しさん
2020/06/20(土) 08:01:08.69ID:ygihVcRE896デフォルトの名無しさん
2020/06/20(土) 09:40:22.78ID:heakYJWv >>895
重複排除できてねぇぢゃねぇかクソ言語がぁぁぁ!って思ってましたごめんなさい
重複排除できてねぇぢゃねぇかクソ言語がぁぁぁ!って思ってましたごめんなさい
897デフォルトの名無しさん
2020/06/20(土) 10:42:49.25ID:m9vPjHEn >>896
重複排除したいならdictionaryの方がいいんじゃないか
重複排除したいならdictionaryの方がいいんじゃないか
898デフォルトの名無しさん
2020/06/20(土) 12:12:13.86ID:RmKRgXjX >>888
それは1プロシージャの行数が多いということかな?
それはダメダメだ。
そういうことになることはあるけど、本人が書ける奴なら自分でも分かってるかもね。
時間があれば直すんだけどってのは時々ある。
それは1プロシージャの行数が多いということかな?
それはダメダメだ。
そういうことになることはあるけど、本人が書ける奴なら自分でも分かってるかもね。
時間があれば直すんだけどってのは時々ある。
899デフォルトの名無しさん
2020/06/20(土) 12:16:26.19ID:RmKRgXjX >>894
Dictionaryと逆だから注意。
Dictionaryと逆だから注意。
900デフォルトの名無しさん
2020/06/20(土) 12:24:38.59ID:CytyTodc excelからwordのoleなのですが、印刷プレビュー画面が表示されている
あいだは処理を停止させておきたのですが、どうすればできますか?
また、excelのほうのPrintPreviewメソッドではそれが実現できるのですが、
その違いはなんなのでしょうか。
Dim WORD As Object
Set WORD = CreateObject("Word.application")
WORD.Documents.Open(filePath)
WORD.PrintPreview = True
Do Until WORD.PrintPreview = False
Loop
あいだは処理を停止させておきたのですが、どうすればできますか?
また、excelのほうのPrintPreviewメソッドではそれが実現できるのですが、
その違いはなんなのでしょうか。
Dim WORD As Object
Set WORD = CreateObject("Word.application")
WORD.Documents.Open(filePath)
WORD.PrintPreview = True
Do Until WORD.PrintPreview = False
Loop
901デフォルトの名無しさん
2020/06/20(土) 12:44:36.40ID:ygihVcRE902デフォルトの名無しさん
2020/06/20(土) 12:57:07.60ID:m9vPjHEn keyの位置間違えててできなかったって話だろ…
903デフォルトの名無しさん
2020/06/20(土) 15:27:33.55ID:ygihVcRE ああすまん、よく読んだらそうだな
904デフォルトの名無しさん
2020/06/20(土) 15:53:54.10ID:wuXUOHn9 PCに疎い人達の集まる職場
週に1回の頻度で1200個の数値を4時間かけて手打ちしてたのを3秒で終わらせるマクロ組んで改善提案→何かわからんけど組んだんだろ で300円
他のシートやブックに行き来しやすいように
図形に文字入れてハイパーリンクをセットしたのを2つ作った
→これはいいぞ 1000円
もう嫌だ
週に1回の頻度で1200個の数値を4時間かけて手打ちしてたのを3秒で終わらせるマクロ組んで改善提案→何かわからんけど組んだんだろ で300円
他のシートやブックに行き来しやすいように
図形に文字入れてハイパーリンクをセットしたのを2つ作った
→これはいいぞ 1000円
もう嫌だ
905デフォルトの名無しさん
2020/06/20(土) 15:58:25.34ID:MH9+mSJC 300円とか1000円って何?
906デフォルトの名無しさん
2020/06/20(土) 16:02:10.10ID:wuXUOHn9907デフォルトの名無しさん
2020/06/20(土) 16:08:51.15ID:MH9+mSJC >>906
単にプレゼンというか説明下手なだけじゃないの?
単にプレゼンというか説明下手なだけじゃないの?
908デフォルトの名無しさん
2020/06/20(土) 16:23:05.64ID:wuXUOHn9 >>907
もうマクロに関してそこは諦めたわ
if関数使ったりそういう改善のが1000円や1500円で貰えるからそっちでいってる
同僚から組んで欲しいってのも全部断ってる
58歳のパソコンに疎すぎる人に説明する必要性もないかな
もうマクロに関してそこは諦めたわ
if関数使ったりそういう改善のが1000円や1500円で貰えるからそっちでいってる
同僚から組んで欲しいってのも全部断ってる
58歳のパソコンに疎すぎる人に説明する必要性もないかな
909デフォルトの名無しさん
2020/06/20(土) 17:02:57.89ID:wVoXfuuE まぁ、「実際の能率の向上」より「誰にでも分かりやすく使い易い」にウエイトが傾いてるってのはよくあることじゃね。
どんな評価方法か知らんけど。
・直接的に恩恵を受ける人の数
⇒あくまで例えばだが、>>904の「3秒マクロ」で仕事が楽になるのが数人しかいない、とか、
「図形2つ」が割と広い範囲で使える上に、他の職場でも応用が利く、とか。
・柔軟性
⇒例えば3秒マクロに何かしら元となるデータがあると仮定して、
そのデータを出力するシステムの仕様に変更があった場合対応できなくなる、とか。
他方、図形2つの方は文字どおり図形2つ作って文字入れてハイパーリンクを加えただけなので、
例えば参照先URLなりが変わったとしても、比較的対応が容易だし、
よほどのことがなければ「使えなくなる」ということが考えられない、とか。
・上司のその時の気分、あるいは好かれ具合
⇒それな
どんな評価方法か知らんけど。
・直接的に恩恵を受ける人の数
⇒あくまで例えばだが、>>904の「3秒マクロ」で仕事が楽になるのが数人しかいない、とか、
「図形2つ」が割と広い範囲で使える上に、他の職場でも応用が利く、とか。
・柔軟性
⇒例えば3秒マクロに何かしら元となるデータがあると仮定して、
そのデータを出力するシステムの仕様に変更があった場合対応できなくなる、とか。
他方、図形2つの方は文字どおり図形2つ作って文字入れてハイパーリンクを加えただけなので、
例えば参照先URLなりが変わったとしても、比較的対応が容易だし、
よほどのことがなければ「使えなくなる」ということが考えられない、とか。
・上司のその時の気分、あるいは好かれ具合
⇒それな
910デフォルトの名無しさん
2020/06/20(土) 17:21:32.15ID:qvmNBmpu >>908
同じような所が10カ所(ファイル)あったら10000円〜15000円もらえるのかな
同じような所が10カ所(ファイル)あったら10000円〜15000円もらえるのかな
911デフォルトの名無しさん
2020/06/20(土) 17:21:48.48ID:XQZF02H8 相談もなしに勝手なマクロを組んだことで減点対象になったのだろう
もしかしたら、その作業は近々システムの変更でなくなる予定だったかもしれない
作業以外の目的があったのかもしれない
残業が多いなと思っていたら、
余計なものを作って遊んでいた、減給されないだけましだろう
もしかしたら、その作業は近々システムの変更でなくなる予定だったかもしれない
作業以外の目的があったのかもしれない
残業が多いなと思っていたら、
余計なものを作って遊んでいた、減給されないだけましだろう
912デフォルトの名無しさん
2020/06/20(土) 17:41:36.37ID:qvmNBmpu マクロの変更も有識者間でコードレビューして評価報告書提出して上司に確認のサインもらって
修正連絡票回覧するまでやらないとクレームはいったりするよね
知らない間に勝手にマクロが書き換えられていたとか言われたらやばいだろ
修正連絡票回覧するまでやらないとクレームはいったりするよね
知らない間に勝手にマクロが書き換えられていたとか言われたらやばいだろ
913デフォルトの名無しさん
2020/06/20(土) 18:45:21.31ID:m9vPjHEn >>904
わかりやすく説明するなり評価方法に基づいたアピールするなりすりゃいいじゃん
わかりやすく説明するなり評価方法に基づいたアピールするなりすりゃいいじゃん
914デフォルトの名無しさん
2020/06/21(日) 05:53:32.39ID:I80zoHyc お前らの職場って大変そうだな
おれんところなんか俺しかVBA触れるやついないから好き放題やってるわ
おれんところなんか俺しかVBA触れるやついないから好き放題やってるわ
915デフォルトの名無しさん
2020/06/21(日) 09:05:05.14ID:zpzjHnJy 俺も俺も
初心者に毛が生えた程度の知識だけど周りはPC素人ばかりだからやりたい放題だ
初心者に毛が生えた程度の知識だけど周りはPC素人ばかりだからやりたい放題だ
916デフォルトの名無しさん
2020/06/21(日) 10:08:30.56ID:7ZJTD4pQ 同じく
PCマイスターみたいに見られてるけど、薄々勘付かれているかもしれない
PCマイスターみたいに見られてるけど、薄々勘付かれているかもしれない
917デフォルトの名無しさん
2020/06/21(日) 13:43:26.96ID:/utMrS/w エクセルはそこそこ使いこなせるがマクロは全く知らないってな人に
簡易マクロ作っただけで「ハァ?お前天才かよ?」みたいな反応されるよな。
褒められる優越感と小学生でも書けるコードで褒められる自分へ嫌悪感で
葛藤しまくるよな
簡易マクロ作っただけで「ハァ?お前天才かよ?」みたいな反応されるよな。
褒められる優越感と小学生でも書けるコードで褒められる自分へ嫌悪感で
葛藤しまくるよな
918デフォルトの名無しさん
2020/06/21(日) 14:00:37.96ID:ANltB6r3 いや、別に。
919デフォルトの名無しさん
2020/06/21(日) 15:15:50.34ID:0WnnnX3x 両方とも別に
920デフォルトの名無しさん
2020/06/21(日) 17:39:52.32ID:1ON8fipo >>917
他の奴らってそもそも業務が違うだろ
他の奴らってそもそも業務が違うだろ
921デフォルトの名無しさん
2020/06/21(日) 17:47:04.76ID:k1xdFuXh >>920
出来ない正社員と出来るバイトの俺
出来ない正社員と出来るバイトの俺
922デフォルトの名無しさん
2020/06/21(日) 17:50:26.78ID:HGSDkuyA >>917
読んでるこっちが恥ずかしい
読んでるこっちが恥ずかしい
923デフォルトの名無しさん
2020/06/21(日) 18:05:28.37ID:xIpMoW7x スレチだけどPHPは
ハイパーテキスト・プリプロセッサだってのに
初歩でも神呼ばわりだぜ
【PHP】下らねぇ質問はここに書き込みやがれ 11
http://itest.5ch.net/mevius/test/read.cgi/tech/1591334726/96-107
96
> hoge.com/****
>に指定した数字入れて、html出力ってできますか?
103 foreach(
107
>>103
神!おっぱ・(自粛)
ハイパーテキスト・プリプロセッサだってのに
初歩でも神呼ばわりだぜ
【PHP】下らねぇ質問はここに書き込みやがれ 11
http://itest.5ch.net/mevius/test/read.cgi/tech/1591334726/96-107
96
> hoge.com/****
>に指定した数字入れて、html出力ってできますか?
103 foreach(
107
>>103
神!おっぱ・(自粛)
924デフォルトの名無しさん
2020/06/21(日) 19:11:40.34ID:f7O4FwhH よくメニューに[+]があり、
これを押すと隠してあったメニューが表示されるといった仕組みがあるのですが、
これをエクセルで実現することはできるでしょうか。
これを押すと隠してあったメニューが表示されるといった仕組みがあるのですが、
これをエクセルで実現することはできるでしょうか。
925デフォルトの名無しさん
2020/06/21(日) 19:46:46.68ID:HGSDkuyA 簡単なのはVisibleプロパティをFalseからTrueにする方法
926デフォルトの名無しさん
2020/06/21(日) 19:54:02.33ID:apqHGiEy >>924
ユーザーフォームの使用になる
http://e-tech.life.hyogo-u.ac.jp/contents/kyouzai/vb-ref/contents/part1/button_visible/button_visible.html
ユーザーフォームのイベントで条件を記述してやるのが良い
ユーザーフォームの使用になる
http://e-tech.life.hyogo-u.ac.jp/contents/kyouzai/vb-ref/contents/part1/button_visible/button_visible.html
ユーザーフォームのイベントで条件を記述してやるのが良い
927デフォルトの名無しさん
2020/06/21(日) 19:54:53.04ID:jOeQJVeR >>924
グループ化使うとか
グループ化使うとか
928デフォルトの名無しさん
2020/06/21(日) 20:09:41.65ID:Ca9zW0qx929デフォルトの名無しさん
2020/06/21(日) 20:17:13.26ID:dwey+O0N 俺も大したことできないけど零細で偉そうにしてるわ
人生なんて鶏口牛後で十分なんだよ
人生なんて鶏口牛後で十分なんだよ
930デフォルトの名無しさん
2020/06/21(日) 21:52:25.43ID:LN5eNKcO >>928
100人前後の会社で
60人ほど派遣
20人くらいがバイト
10人くらいのパート
正社員は10人ほどのうち確実に7人はエクセルもまともに使えないレベルなのでWord使ってる
エクセルを使うのは正社員1人派遣1人バイトの俺
3ヶ月に一度現れる謎の5人組はよく分からない
そいつらの給料が月70〜80万円って言ってた
俺のバイト代は月12万円くらいだった
この国はおかしいって狂ってるよ
100人前後の会社で
60人ほど派遣
20人くらいがバイト
10人くらいのパート
正社員は10人ほどのうち確実に7人はエクセルもまともに使えないレベルなのでWord使ってる
エクセルを使うのは正社員1人派遣1人バイトの俺
3ヶ月に一度現れる謎の5人組はよく分からない
そいつらの給料が月70〜80万円って言ってた
俺のバイト代は月12万円くらいだった
この国はおかしいって狂ってるよ
931デフォルトの名無しさん
2020/06/21(日) 22:06:48.15ID:jOeQJVeR 大して優秀なわけでもないやつがちょっと優位な部分があるだけで周りを見下すあるある
932デフォルトの名無しさん
2020/06/22(月) 00:04:33.28ID:CPlWdThO933デフォルトの名無しさん
2020/06/22(月) 00:17:00.59ID:W8AXf1Mi 採用条件に入ってないし学校やパソコン教室でも普通は教えないからできないのが普通
そもそもプログラミングとは何か、どういう場面で使うと便利なのかもわかってない人が大半
うっかり省力化すると事務員の首が飛ぶから、人の心があれば黙ってるものだし
そもそもプログラミングとは何か、どういう場面で使うと便利なのかもわかってない人が大半
うっかり省力化すると事務員の首が飛ぶから、人の心があれば黙ってるものだし
934デフォルトの名無しさん
2020/06/22(月) 01:24:44.89ID:CPlWdThO 一般的なプログラミングの話をするならExcelは不向き
そもそも表計算ソフトの延長でしかない
そもそも表計算ソフトの延長でしかない
935デフォルトの名無しさん
2020/06/22(月) 02:04:25.88ID:6UseFZdn >>932
はいその通りです。
【60代パート】リングファイルを棚にしまう
【社長】ハンコついてパートに渡す
【60代パート】Wordから印刷して社長の机に置く
【50代課長】エクセルからWordにコピペしたファイル名とフォルダをパートに指示
【20代大卒美人派遣】エクセルで原価計算して課長に渡す
【30代バイト】梱包出荷伝票をエクセルに打込み
はいその通りです。
【60代パート】リングファイルを棚にしまう
【社長】ハンコついてパートに渡す
【60代パート】Wordから印刷して社長の机に置く
【50代課長】エクセルからWordにコピペしたファイル名とフォルダをパートに指示
【20代大卒美人派遣】エクセルで原価計算して課長に渡す
【30代バイト】梱包出荷伝票をエクセルに打込み
936デフォルトの名無しさん
2020/06/22(月) 02:11:43.53ID:NG7/h+3B >>935
多分そういうこと言ってるわけじゃないと思うぞ
多分そういうこと言ってるわけじゃないと思うぞ
937デフォルトの名無しさん
2020/06/22(月) 02:30:48.70ID:6UseFZdn938デフォルトの名無しさん
2020/06/22(月) 03:23:12.33ID:CPlWdThO939デフォルトの名無しさん
2020/06/22(月) 08:49:37.60ID:no76adsC ヨコレスだけど30代に梱包やらせる会社とか潰れちまえ
頭も体も回る年代なんだから大いに無駄な事やらせた方がいいと思うね
年食って手数よりも口数のほうが多くなってきたら梱包に回せ
頭も体も回る年代なんだから大いに無駄な事やらせた方がいいと思うね
年食って手数よりも口数のほうが多くなってきたら梱包に回せ
940デフォルトの名無しさん
2020/06/22(月) 10:07:31.70ID:lKh0OPb2 では無能な30代には何をやらせれば良いのだ?
941デフォルトの名無しさん
2020/06/22(月) 10:18:08.71ID:f1XJDlES バイトに雑用させるのは普通だし年齢関係ないわ
942デフォルトの名無しさん
2020/06/22(月) 10:44:00.06ID:i2ShoQV/ VBAスレなのにバイトの仕事がどうのって話になってて、さすがだなっておもいましたwww
943デフォルトの名無しさん
2020/06/22(月) 10:45:26.13ID:DpiCYHaq vbaってプログラミングなの?
944デフォルトの名無しさん
2020/06/22(月) 11:16:34.74ID:DTKm8QVZ プログラミングじゃなかったらなんなんだ
物書きか?
物書きか?
945デフォルトの名無しさん
2020/06/22(月) 11:19:23.28ID:DpiCYHaq Excel関数の延長?
946デフォルトの名無しさん
2020/06/22(月) 12:06:22.79ID:f1XJDlES 正式な定義を知りたきゃMS公式でも見ればいいだろ…
947デフォルトの名無しさん
2020/06/22(月) 12:10:34.37ID:DpiCYHaq 申し訳ありませんでした
948デフォルトの名無しさん
2020/06/22(月) 12:26:25.71ID:qDFuj4q3 馬鹿ばっか
949デフォルトの名無しさん
2020/06/22(月) 18:17:44.27ID:es1/qSoW 一年限定で異動してきた職場
噂に聞いてたけど想像を絶するところだった
エクセル使う業務がほとんどなのに
関数使える人が数人、まともな人は確かにいる
ふとみたおっさんはエクセルの表の合計を電卓で足してキーボードでそれを打ち込
ふとおばちゃん達は
「ここ選択してイコールの後にアルファベットと数値と同じ数値が反映される」
「えー!そうなの?」
と会話してる
マクロ以前の問題だった
噂に聞いてたけど想像を絶するところだった
エクセル使う業務がほとんどなのに
関数使える人が数人、まともな人は確かにいる
ふとみたおっさんはエクセルの表の合計を電卓で足してキーボードでそれを打ち込
ふとおばちゃん達は
「ここ選択してイコールの後にアルファベットと数値と同じ数値が反映される」
「えー!そうなの?」
と会話してる
マクロ以前の問題だった
950デフォルトの名無しさん
2020/06/22(月) 18:44:26.90ID:CPlWdThO 管理者が無能だと会社がなくなる
管理者が有能なら無能な人材に高い給料は出さない
管理者が有能なら無能な人材に高い給料は出さない
951デフォルトの名無しさん
2020/06/22(月) 19:03:11.01ID:f1XJDlES 周りは出来ない語りしてもお前が優秀になれるわけじゃないんだよなぁ
952デフォルトの名無しさん
2020/06/22(月) 23:08:43.37ID:eYhHFxw6 VBAでイキるの面白すぎるからやめて
953デフォルトの名無しさん
2020/06/22(月) 23:16:11.85ID:R2BScS4S やめたら面白くないだろ
954デフォルトの名無しさん
2020/06/23(火) 00:55:19.86ID:TulROOqi 30代の梱包バイトのおばちゃんがVBAできないとか比較する方がおかしい
955デフォルトの名無しさん
2020/06/23(火) 01:00:04.26ID:bSgedWTD VBA素人です
というか、ちょっとだけPHPを書いたことがある程度のプログラム初心者です
セルA1:A5のどこか一箇所に値を入力すれば全てのセルが埋まるようにしたいのです
全てのセルには入力された値に対して決まったパーセンテージをかける
たとえばA1に100と入力されたらA2~5にはそれぞれA1*○%(○はA2~5とも異なる)
A2に100と入力されたらA1及びA3~5にそれぞれA2*○%
多分条件分岐でいうと
if A1が空白でないならA1には入力した値、A2*○%、A3*○%・・・
elseif A2が空白でないなら・・・
みたいな感じになるのかなと思うのですが冗長ですよね…
do Whileで書けるのか、他にスマートな書き方があるのか見当がつきません
フォームでどのセルに入力するか選んで値を入れてボタンを押すと
全てのセルが埋まる、というのが理想です
アドバイスを頂けたらありがたいです
よろしくおねがいします
というか、ちょっとだけPHPを書いたことがある程度のプログラム初心者です
セルA1:A5のどこか一箇所に値を入力すれば全てのセルが埋まるようにしたいのです
全てのセルには入力された値に対して決まったパーセンテージをかける
たとえばA1に100と入力されたらA2~5にはそれぞれA1*○%(○はA2~5とも異なる)
A2に100と入力されたらA1及びA3~5にそれぞれA2*○%
多分条件分岐でいうと
if A1が空白でないならA1には入力した値、A2*○%、A3*○%・・・
elseif A2が空白でないなら・・・
みたいな感じになるのかなと思うのですが冗長ですよね…
do Whileで書けるのか、他にスマートな書き方があるのか見当がつきません
フォームでどのセルに入力するか選んで値を入れてボタンを押すと
全てのセルが埋まる、というのが理想です
アドバイスを頂けたらありがたいです
よろしくおねがいします
956デフォルトの名無しさん
2020/06/23(火) 01:09:31.87ID:kv8byCI9 for r=1 to 5
if 入力されたセルじゃない場合
cells = 入力された数値かける定数
end if
next
みたいな感じでは?
if 入力されたセルじゃない場合
cells = 入力された数値かける定数
end if
next
みたいな感じでは?
957デフォルトの名無しさん
2020/06/23(火) 01:33:11.82ID:kv8byCI9 あー、これじゃダメみたい、すみません。
958デフォルトの名無しさん
2020/06/23(火) 01:53:19.74ID:bE26MwSl959デフォルトの名無しさん
2020/06/23(火) 02:25:19.01ID:akfNW9d5 入力セルによらず割合が一定なら100%の値を出してからそれをループで入れろバカか
960デフォルトの名無しさん
2020/06/23(火) 03:24:31.72ID:TulROOqi >>955
俺なら入力は1か所(A1)だけにして A2〜A5 は 入力させない or "=A1" にでもするかもな
俺なら入力は1か所(A1)だけにして A2〜A5 は 入力させない or "=A1" にでもするかもな
961デフォルトの名無しさん
2020/06/23(火) 05:39:38.41ID:BwhdgQkj >>955ユーザーフォームにリストボックスとテキストボックスとコマンドボタンを作成し以下
Dim val As Double
Private Sub UserForm_Initialize()
With ListBox1
.AddItem "A1"
.AddItem "A2"
End With
End Sub
Private Sub CommandButton1_Click()
If UserForm1.ListBox1.Value="A1" then
val = UserForm1.TextBox1.Value
A1
Else If UserForm1.ListBox1.Value="A2" then
val = UserForm1.TextBox1.Value
A2
End If
End Sub
Sub A1()
Range("A1").value=val
Range("A2").value=val*0.2
Range("A3").value=val*0.3
Range("A4").value=val*0.4
Range("A5").value=val*0.5
End Sub
Sub A2()
Range("A1").value=val*0.1
Range("A2").value=val
Range("A3").value=val*0.3
Range("A4").value=val*0.4
Range("A5").value=val*0.5
End Sub
Dim val As Double
Private Sub UserForm_Initialize()
With ListBox1
.AddItem "A1"
.AddItem "A2"
End With
End Sub
Private Sub CommandButton1_Click()
If UserForm1.ListBox1.Value="A1" then
val = UserForm1.TextBox1.Value
A1
Else If UserForm1.ListBox1.Value="A2" then
val = UserForm1.TextBox1.Value
A2
End If
End Sub
Sub A1()
Range("A1").value=val
Range("A2").value=val*0.2
Range("A3").value=val*0.3
Range("A4").value=val*0.4
Range("A5").value=val*0.5
End Sub
Sub A2()
Range("A1").value=val*0.1
Range("A2").value=val
Range("A3").value=val*0.3
Range("A4").value=val*0.4
Range("A5").value=val*0.5
End Sub
962デフォルトの名無しさん
2020/06/23(火) 07:50:59.28ID:xSXJEKQO 意図が伝わるようにユーザーフォームで入力させた方がいいように見えるな
visibleのtrue ,false切り替えでうまくやりたい
visibleのtrue ,false切り替えでうまくやりたい
963955
2020/06/23(火) 09:36:33.10ID:bSgedWTD964デフォルトの名無しさん
2020/06/23(火) 10:14:19.39ID:eVy5K5L9 コピペ
965961
2020/06/23(火) 12:34:05.64ID:5v5sJ6te >>963
スマホで寝ながら打ったから
Win7のExcel2010にコピペして確認してみたらミスってた
訂正。大文字だったスマソ then>Then
https://i.imgur.com/LQvQjn9.png
スマホで寝ながら打ったから
Win7のExcel2010にコピペして確認してみたらミスってた
訂正。大文字だったスマソ then>Then
https://i.imgur.com/LQvQjn9.png
966デフォルトの名無しさん
2020/06/23(火) 13:08:23.25ID:AqGxlhQk VBEが勝手に大文字に直してくれるから、ステートメントは全部小文字で入力してるわ
967デフォルトの名無しさん
2020/06/23(火) 16:26:51.99ID:lLVW3adv UsedRangeの使えなさに絶望しました
あれってなに目的で使えんの?
>>966
おれもそれチェック代わりに使ってるんで
変数はほぼ全て大文字スタートだわ
他言語だとやらないけどVBAはエディタがあれなんで
あれってなに目的で使えんの?
>>966
おれもそれチェック代わりに使ってるんで
変数はほぼ全て大文字スタートだわ
他言語だとやらないけどVBAはエディタがあれなんで
968デフォルトの名無しさん
2020/06/23(火) 17:18:02.36ID:JWFUfSAs >>967
間違った使い方してるだけじゃないのか
間違った使い方してるだけじゃないのか
969デフォルトの名無しさん
2020/06/23(火) 18:21:08.83ID:coVE1fyX >>967
グラフ自動生成するときとかに使ってる
グラフ自動生成するときとかに使ってる
970デフォルトの名無しさん
2020/06/23(火) 18:22:23.82ID:z7FZNG3t usedrangeはファイルの中身を検査する時に使うな
個人情報が入ってないかとか
個人情報が入ってないかとか
971デフォルトの名無しさん
2020/06/23(火) 18:28:15.83ID:X4/0OZ1g UsedRangeは普通に使うぞ。
寧ろ、一番使うかも。
Excelの固定じゃない範囲を取得する場合、これでOKというようなものが無い。
都度考えることになる。
寧ろ、一番使うかも。
Excelの固定じゃない範囲を取得する場合、これでOKというようなものが無い。
都度考えることになる。
972デフォルトの名無しさん
2020/06/23(火) 21:35:23.31ID:LvHFRgi0 値化とか
973デフォルトの名無しさん
2020/06/23(火) 21:40:15.53ID:LvHFRgi0 2次元の動的配列にバックデータを突っ込むときに使う
974デフォルトの名無しさん
2020/06/23(火) 22:16:19.70ID:zDUcrbEK やっと念願の夢かなって生産現場に異動できそう
PCをあまり使わなくなる職場にいけるから
マクロ組んだりもほとんどしなくて済むから嬉しすぎる
そしてここで教えてくれた人たちへの恩も忘れられんよ
PCをあまり使わなくなる職場にいけるから
マクロ組んだりもほとんどしなくて済むから嬉しすぎる
そしてここで教えてくれた人たちへの恩も忘れられんよ
975デフォルトの名無しさん
2020/06/23(火) 22:27:25.32ID:UicElvK7 ひでぇなぁ忘れられちゃうのかぁ残念
汗だくの梱包現場からエアコン効いた部屋に行きたいよ
汗だくの梱包現場からエアコン効いた部屋に行きたいよ
976デフォルトの名無しさん
2020/06/24(水) 10:22:12.41ID:XfIA0IcT Sub Sample1()
Dim Target As Range
Set Target = Range("P:P").FiVBA エラー 91
これで
オブジェクト変数または With ブロック変数が設定されていません。t.Offset(0, 1)
End Sub
何がだめ?
Dim Target As Range
Set Target = Range("P:P").FiVBA エラー 91
これで
オブジェクト変数または With ブロック変数が設定されていません。t.Offset(0, 1)
End Sub
何がだめ?
977デフォルトの名無しさん
2020/06/24(水) 10:26:15.72ID:7kmsZdqz FiVBAって命令あるの?
978デフォルトの名無しさん
2020/06/24(水) 13:23:42.08ID:hNjrAS7L tってなんだよ
宣言してないオブジェクト変数が動くわけないだろ
宣言してないオブジェクト変数が動くわけないだろ
979デフォルトの名無しさん
2020/06/24(水) 13:58:43.39ID:LpqCs0qI なにがだめって聞かれても全てがとしか
980デフォルトの名無しさん
2020/06/24(水) 14:29:06.16ID:jVCudKEf ちゃんと内容を確認しないのが駄目
981デフォルトの名無しさん
2020/06/24(水) 14:58:07.29ID:ec8khzg7 ごめん間違えた
これです
Sub Sample1()
Dim Target As Range
Set Target = Range("P:P").Find(What:="田中")
MsgBox Target.Offset(0, 1)
End Sub
これです
Sub Sample1()
Dim Target As Range
Set Target = Range("P:P").Find(What:="田中")
MsgBox Target.Offset(0, 1)
End Sub
982デフォルトの名無しさん
2020/06/24(水) 15:31:45.69ID:7kmsZdqz983デフォルトの名無しさん
2020/06/24(水) 16:03:07.42ID:A95Qwidx >>981
田中がないんだろどうせ
田中がないんだろどうせ
984デフォルトの名無しさん
2020/06/24(水) 16:11:20.98ID:ec8khzg7 Set Target = Range("P:P").Find(What:="田中")
この田中を変数というか特定のセルの値にしたい場合どうしたらいい?
A1のセル内容を参照したいとする
この田中を変数というか特定のセルの値にしたい場合どうしたらいい?
A1のセル内容を参照したいとする
985デフォルトの名無しさん
2020/06/24(水) 16:18:53.01ID:ec8khzg7 あ、できた
ごめん自分は京都大学霊長類研究所のジェームズという7歳のチンパンジーだからVBAよくわからないんだ
皆さんありがとございまうす
ごめん自分は京都大学霊長類研究所のジェームズという7歳のチンパンジーだからVBAよくわからないんだ
皆さんありがとございまうす
986デフォルトの名無しさん
2020/06/24(水) 16:21:57.07ID:4/s69xMY >>985
解決内容を書けチンパンジー
解決内容を書けチンパンジー
987デフォルトの名無しさん
2020/06/24(水) 17:53:24.17ID:A95Qwidx 自己紹介や自分語りはいらん
988デフォルトの名無しさん
2020/06/24(水) 19:08:49.57ID:Ra7WLueW >>984
Nothingのエラ―対処が出来て無いってのはみんなが通る道だ。
Nothingのエラ―対処が出来て無いってのはみんなが通る道だ。
989デフォルトの名無しさん
2020/06/24(水) 19:26:45.24ID:aYj5R9EO 自分で使う分にはエラー終了でも正常終了でも変わらんし
990デフォルトの名無しさん
2020/06/25(木) 14:24:07.38ID:UL1INOQI In Range("R:R")
というのがあるとして
R列全体を選択するのはマストなんだけど
ホントはR7からソレ以下全部にしたい
In Range("R7:R")ではうまく行かないみたいだしこういう場合ってどうしたらいいんだろう
というのがあるとして
R列全体を選択するのはマストなんだけど
ホントはR7からソレ以下全部にしたい
In Range("R7:R")ではうまく行かないみたいだしこういう場合ってどうしたらいいんだろう
991デフォルトの名無しさん
2020/06/25(木) 14:52:26.82ID:fOnLoXil usedrangeじゃ駄目なんですか?
992デフォルトの名無しさん
2020/06/25(木) 15:35:07.92ID:eDJAI9Nl テーブルにすれば?
993デフォルトの名無しさん
2020/06/25(木) 15:38:48.25ID:emOdy//g cellsでそこから最終行まで指定すればいいじゃない
994デフォルトの名無しさん
2020/06/25(木) 16:00:07.27ID:eepaDL1r colmns.countが最終桁番号だしApplication.Intersectで指定2範囲の重複部分だせるし
995デフォルトの名無しさん
2020/06/25(木) 16:24:03.44ID:oGWS7APt 直感的にやるならRange(Range("R7"),Range("R7").End(xlDown))でいいんじゃない
996デフォルトの名無しさん
2020/06/25(木) 17:54:02.59ID:xz2BRr37997デフォルトの名無しさん
2020/06/25(木) 17:54:59.62ID:orhJfehX きたこれ
VBA歴2ヶ月なのに俺は職場のPCの先生から神様扱い
VBA歴2ヶ月なのに俺は職場のPCの先生から神様扱い
998デフォルトの名無しさん
2020/06/25(木) 18:26:51.87ID:BKkovaqh 何そのダメ先生
999デフォルトの名無しさん
2020/06/25(木) 18:32:44.98ID:0L1EfJ/H おだてられて浮かれてるだけだなw
1000デフォルトの名無しさん
2020/06/25(木) 18:45:05.09ID:goJhPQKd うー
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 46日 5時間 1分 20秒
新しいスレッドを立ててください。
life time: 46日 5時間 1分 20秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- お前らダウナー系だよな
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 精液がゼリー状で黄ばんでるせいで女と付き合う勇気ない
- 女はSNSで乳揺らして踊ってりゃラクにカモ集まるから羨ましい
- 【高市速報】中国、最後通牒 [308389511]
