Excel VBA 質問スレ Part68 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん (アウアウクー MMbb-DxLX)
20/09/04 19:53:46 F8mRPL3VM.net
一定間隔でマクロ実行する方法はなんとなくわかるのですが、不規則な間隔(5秒〜90秒)でマクロ実行したいのですが
どんなやり方がありますか?

51:デフォルトの名無しさん
20/09/04 20:18:00.24 1AlCas5O0.net
>>46
日付が5桁の数字って、44078とかだろうけど、
多分フィルタもCSVも関係ない。
値貼り付けしちゃってる。

52:デフォルトの名無しさん
20/09/04 20:24:24.36 1AlCas5O0.net
>>50
Rnd使うのが一般的なんだろうけど、アホな方法を挙げると、
誰かが作った不規則をパク

53:デフォルトの名無しさん
20/09/04 20:26:21.57 1AlCas5O0.net
ってくるとか。
例えばライブカメラの画像をDLして使うとか。

54:デフォルトの名無しさん
20/09/04 22:27:33.32 awq2GZ8I0.net
>>50
マクロの最後にApplication.OnTimeを書く
現在時刻に乱数で秒数を足す

55:デフォルトの名無しさん
20/09/04 23:53:41.25 3ZUt+s6n0.net
モジュール1で定義した配列をモジュール2で使うにはどうすればいいですか?
モジュール1でdimではなくpublicで宣言すればいいのでしょうか?

56:デフォルトの名無しさん
20/09/04 23:56:30.81 LK01+huQd.net
なんでそれをやってみないの

57:デフォルトの名無しさん
20/09/05 00:15:03.09 oZJVOAAi0.net
>>51
すべてご推察のとおりです。ありがとうございます。
xlPasteValuesで張り付けてます。
xlPasteAllだと年が月日の後になってしまいます(5/31/2020 0:00)
>>47さんのおっしゃる
「文字列として」貼り付ける設定を発見できません。
""で囲めば文字列として貼り付けられるのでしょうか。

58:デフォルトの名無しさん
20/09/05 00:15:37.71 wG6iKMy+0.net
最近また馬鹿が出てきた

59:デフォルトの名無しさん
20/09/05 00:20:53.60 dEfSwWqXd.net
>>57
セルの書式設定

60:デフォルトの名無しさん
20/09/05 07:07:58.26 8ZVzqJQh0.net
CSVで保存したら書式通りで保存されたっけ?

61:デフォルトの名無しさん (ワッチョイ 27ce-n8ne)
20/09/05 08:05:59 aR6FsABo0.net
>>60
される

62:デフォルトの名無しさん
20/09/05 10:12:38.88 LyoNVqbOr.net
A1に3、B1に100といれ、実行すると、
3から100行までを非表示にするマクロお願いします

63:デフォルトの名無しさん
20/09/05 13:47:16.04 CLMpHe/Q0.net
基本技術の試験勉強してるのですが、
URLリンク(www.fe-siken.com)
この過去問の設問3のマクロの文章の和訳というか、各行がどんな処理をしているのか日本語で説明できる方いませんか
あと、変数iなんですが、なぜiなんでしょう
よろしくお願いいたします

64:デフォルトの名無しさん
20/09/05 14:03:42.79 4XqPsYsKd.net
ループカウンタ用の変数名はとりあえずiにでもしとこうっていう昔からの名残
細かく言うと整数を表すIntegerのi
i、j、k〜nまで順によく使われる

65:デフォルトの名無しさん (ワッチョイ 0701-zmOT)
20/09/05 14:08:56 CLMpHe/Q0.net
>>64
ありがとうございます
特にこだわる深い意味は無いのですね
助かります

66:63 (ワッチョイ 0701-zmOT)
20/09/05 14:19:36 CLMpHe/Q0.net
何度もレスしてすいません。
問題の文章とVBAのマクロの文章を照らし合わせて回答をみると何となく答えがわかる気がしてきたのですが、

相対(a2,work_line,3)

がなぜ来店状況ワークシートのセルd列のことになるのか分かりません。
3列目なのでcだと思ったのですが…

67:デフォルトの名無しさん (ササクッテロ Spbb-Yyeh)
20/09/05 14:51:37 OBeOSrHnp.net
>>64
indexかと思っていたんだが

68:デフォルトの名無しさん
20/09/05 15:12:53.61 JRHWh/h7d.net
>>66
列番号ではなくA列から相対的に数えて何個右の列かってことだろう

69:デフォルトの名無しさん
20/09/05 15:15:25.53 jnQOfSyba.net
>>66
問題見てもないけど、相対って書いてあるからB列から始めてるんじゃ?
と思ったけどレス見ると3次元配列っぽいしよくわからん

70:デフォルトの名無しさん
20/09/05 15:16:40.51 YqeHmb95d.net
相対(A2,work_line)も同じ考え方だぞ?

71:デフォルトの名無しさん
20/09/05 15:19:54.14 Xd3OIwcX0.net
>>63
fortran起源説

72:デフォルトの名無しさん
20/09/05 15:20:15.06 YqeHmb95d.net
vbaに直すとrange("A2").offset(work_line,3)

73:63
20/09/05 16:21:30.22 zirZG8//r.net
>>68
>>72
ありがとうございます!!
理解しました!

74:63
20/09/05 16:23:09.92 ZUfl2WLX0.net
>>70
すいません
そもそもそれもよく分かってなかったのです。
ちなみに良かったらどういう意味が教えて欲しいです。
聞いてばかりで申し訳ありません。

75:デフォルトの名無しさん
20/09/05 16:25:38.15 STsU3nz1r.net
>>64
インデックスじゃないの?

76:デフォルトの名無しさん
20/09/05 16:34:57.30 BMRcPhN/d.net
>>74
列がわかったなら行もわかるはずだが…

77:デフォルトの名無しさん
20/09/05 17:24:34.57 wG6iKMy+0.net
>>74
そろそろ消えろ

78:デフォルトの名無しさん
20/09/05 17:30:09.65 k1PkCOGDM.net
>>74
相対(a2,行,列)
0の場合は省略可なので
相対(a2,行)とか相対(a2,,列)でもいい

79:デフォルトの名無しさん (スフッ Sd7f-7sgX)
20/09/05 17:54:39 HmyJ6FBVd.net
>>78
それはvbaのoffsetの構文であって設問の問題文とは関係ないな

80:デフォルトの名無しさん
20/09/05 18:10:48.71 BBnzOe5t0.net
>>62
の質問内容がひどすぎて
誰もくいつかないなw

81:デフォルトの名無しさん
20/09/05 18:23:56.02 eBP4WmWUa.net
お金が発生するわけでもないし

82:63 (ワッチョイ 0701-zmOT)
20/09/05 18:58:31 ZUfl2WLX0.net
>>78
ありがとうございます。
とても助かりました。

83:デフォルトの名無しさん
20/09/05 20:42:59.70 XhaSpdgL0.net
>>62
Range(Rows(Range("A1").Value), Rows(Range("B1").Value)).Rows.Hidden = True

84:デフォルトの名無しさん
20/09/06 09:47:35.66 cKQMszzk0.net
>>57
値で貼り付けるなら、後から
.NumberFormatLocal = "yyyy/m/d h:mm;@"

85:デフォルトの名無しさん
20/09/06 09:49:52.25 cKQMszzk0.net
>>63
答えは簡単だが、質問が難しすぎる。

86:63
20/09/06 14:01:01.76 spMqG8Fw0.net
>>85
上手く質問できなくて申し訳ありません。
全体的な単語の一つ一つの意味が知りたかったのです。
お手隙ならばで構わないのですが、
URLリンク(www.fe-siken.com)
この問題の設問3の重みパラメータというのがどう作用して出力Zの値になるのか教えて頂けないでしょうか。

87:63
20/09/06 14:02:20.47 spMqG8Fw0.net
あ、すみません。問題よく読んでませんでした。
これについてはレス直後理解しました。
ごめんなさい( ;ᯅ; )

88:63
20/09/06 14:27:55.58 spMqG8Fw0.net
URLリンク(www.fe-siken.com)
この設問1の答えなんですが、この文でどうして結合とか保護者の氏名と住所を抽出するのですか?

89:デフォルトの名無しさん
20/09/06 14:33:06.47 PpfBKGYq0.net
>>84
これで出来ました
ありがとうありがとうありがとううううううううーー

90:デフォルトの名無しさん (ワッチョイ 7f8e-+abr)
20/09/06 18:43:46 Mql9n0EK0.net
>>88
死ね

91:デフォルトの名無しさん
20/09/07 05:30:38.87 OoqPbQfP0.net
>>90
お前が死ね
ゴミ山猿の屑野郎

92:デフォルトの名無しさん (ワントンキン MMab-AmFM)
20/09/07 12:55:41 ZbJzmFKoM.net
>>91
内容も読まずに書くなよクズ。SQLのことだろうが。

93:デフォルトの名無しさん
20/09/07 18:18:17.86 R5ozSk7c0.net
ここで質問したらダメだったみたいですね
該当スレとかあるのでしょうか

94:デフォルトの名無しさん
20/09/07 18:26:10.30 aZP2Fcscd.net
>>93
スレリンク(welfare板)

95:デフォルトの名無しさん
20/09/07 18:43:17.53 K46ocmR8a.net
>>88
これをどこで聞けばいいのかもわからなかったらFE受かるの難しいよ…

96:デフォルトの名無しさん
20/09/07 20:07:21.03 Yu9E5X6OM.net
VBA勉強しはじめて、ようやくOutlook連携とかzip圧縮とかやり始めたんだけど
Excelそのものの操作に関する情報と比べて、参考に出来る情報の質も量もガクッと落ちた気がする
やっぱ話題のpythonに切替えたほうが悩まずやれるのだろうか

97:デフォルトの名無しさん
20/09/07 20:09:11.40 Yu9E5X6OM.net
質も量も、っていうのはノンプログラマーの自分が探せる範囲って意味です

98:デフォルトの名無しさん
20/09/07 20:22:49.70 sgrgY4Mk0.net
zip.exe叩けばええやろ

99:デフォルトの名無しさん (ワッチョイ 5f6d-4jJb)
20/09/07 20:51:37 /DR3/4oV0.net
目の前に答えが書いてあっても理解できない、答えだと気付けない
これが「馬鹿には無理」の意味

100:デフォルトの名無しさん (テテンテンテン MM8f-Ccsn)
20/09/07 21:00:18 Yu9E5X6OM.net
半年ROMって勉強します押忍押忍押忍

101:デフォルトの名無しさん
20/09/07 21:22:51.97 JIC+p5t3M.net
何をしたいかによるけど、Windowsの操作の自動化っていう範疇ならPowerShellおすすめ
Comオブジェクトも使えるよ

102:デフォルトの名無しさん
20/09/07 21:38:02.53 J1GBImUha.net
なにがおかしいの?
Sub func()
Dim url As String: url = "URLリンク(e-hentai.org)
Dim buffer As String: buffer = ""
Dim objLinks As Object
Dim objIE As InternetExplorer
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = False
objIE.navigate (url)
Do While objIE.Busy Or objIE.readyState <> READYSTATE_COMPLETE
DoEvents
Loop
Call WaitFor(3) ' wait for 3 seconds
objLinks = objIE.document.getElementsByClassName("gdtm").outerHTML
Cells(1, 1).Value = objLinks
objIE.Quit
Set objIE = Nothing
End Sub
Function WaitFor(ByVal second As Integer)
Dim futureTime As Date: futureTime = DateAdd("s", second, Now)
While Now < futureTime
DoEvents
Wend
End Function

103:デフォルトの名無しさん
20/09/07 22:46:01.59 qahfABoQ0.net
IEはもう無くなるよ

104:デフォルトの名無しさん
20/09/07 22:49:52.43 744b2nM10.net
>>102
Dim objLinks As String

105:デフォルトの名無しさん
20/09/07 22:54:20.72 VQNIMFGd0.net
>>103
IEの代替え何使ったらいいの?

106:デフォルトの名無しさん (ワッチョイ 27ce-n8ne)
20/09/07 23:07:32 744b2nM10.net
>>105
データをダウンロードするだけならブラウザを使わずに直接ネットアクセスした方が早くて簡単
色んな方法があるけどXMLHTTPとかWinHttpRequestとか調べてみ

107:デフォルトの名無しさん (ワッチョイ bfc9-XrX+)
20/09/07 23:17:00 VQNIMFGd0.net
>>106
ありがとうございます


'JavaScriptを実行しFormを送る処理
objIE.Navigate "JavaScript:doAction('/文字列')"

みたいなことしないとアクセスできないサイトのデータが取得したいのですが
他に方法ありますか?

108:デフォルトの名無しさん (ワッチョイ e7e6-n8ne)
20/09/07 23:22:23 sgrgY4Mk0.net
JavaScriptを読んで何やってるか調べろ

109:デフォルトの名無しさん
20/09/07 23:49:39.86 744b2nM10.net
>>107
Form送信は単純なHTTPアクセスで代替できるケースが多いから、これもブラウザを使う必要はない
てか、WEBの構造はVBA関係ないし

110:デフォルトの名無しさん
20/09/07 23:56:10.64 UwONkXQv0.net
エクセル2010です。
上書き保存時にすべてのシートでA1セルを選択するようにしたいのですが、
Ctrl+S時とボタンのクリックイベントで挙動が違うことにハマってます。
1枚目シートにactiveXコントロールのボタンを配置し、VBAの構成は以下です。
1. シートモジュール : ボタンのクリックイベントにThisworkbook.saveだけを書いています。
2. ThisWorkbookモジュール : beforeSaveイベントで3を呼び出し。
3. 標準モジュール : 全シートのA1セルを選択するSubプロシージャ。ForEachでまわすだけ。
Ctrl+Sの際は2→3でうまくいきます。
ボタン押下の場合は、1→2→3と流れてはいるものの、なぜか各シートがactivateされなず、activeSheet.Range("A1").Selectが働きません。
1のクリックイベントから直接3を呼び出すのは、うまく行きます。
何故このような挙動になるのか分からず数日ハマってます。
どなたか、ご教示よろしくお願いします。

111:デフォルトの名無しさん
20/09/08 02:03:49.70 weDKADyMM.net
>>110
for i= activeworkbook.worksheets.count to 1 step -1
apprication.goto activeworkbook.worksheets(i).range("a1")
next i
activeworkbook.save
スマホ打ちだから綴りミスはあるかも

112:デフォルトの名無しさん
20/09/08 07:47:00.42 vMdvrooDa.net
>>110
For eachで全シート回してるならActivateしなくても、
sh.Range("A1")で行けないか?

113:デフォルトの名無しさん
20/09/08 07:48:01.88 vMdvrooDa.net
>>112
間違えたsh.Range("A1").Selectだわ

114:デフォルトの名無しさん (ワッチョイ 27da-XrX+)
20/09/08 10:40:31 C66iYfBu0.net
>>110
働かないという場合の原因で以下のことを調べてみ

1.実は働いていたがその後に別の動作をしたため働いていないように見える
2.働こうとしたが、なんらかの異常が出て失敗している
3.その処理が実行されていない(on errorやifの条件、イベント発生していないなど)

115:デフォルトの名無しさん
20/09/08 11:03:00.55 0vfIbeP00.net
>>105
漏れは、yahoo のログインとか、
Ruby, Selenium Webdriver で、ブラウザを自動操作してる
単純なダウンロード・スクレイピングなら、RubyのNokogiri。
外部コマンドなら、curl, wget

116:デフォルトの名無しさん (ラクッペペ MM8f-dQ4P)
20/09/08 11:52:57 POT3YWITM.net
Application.EnableEvents=Falseしてるとか?

117:デフォルトの名無しさん
20/09/08 16:58:59.99 qXkQmTRa0.net
“>-1”&i
て書いたときに >-2, >-3... っていうふうに比較値が意図せず負に進むんだけど正の値に足したい場合ってどうすれば良いでしょうか。

118:デフォルトの名無しさん
20/09/08 18:39:01.86 p9XW8v7Na.net
>>117
VBAの挙動の問題
-を文字列、1を数値として認識してる
そもそも、-1をダブルクォーテーションで括ってるのは文字列として-1を認識させたい時のみにするのが基本
なので、ダブルクォーテーションを取ってやれば意図通り動くはず

119:デフォルトの名無しさん
20/09/08 19:07:42.80 Pjd0b/NhM.net
へー、そんな挙動するんだ。知らなかった
>-11
>-12
>-13
になると思ってたよ

120:デフォルトの名無しさん
20/09/08 19:08:20.88 E23V8S4o0.net
>>113
activeじゃないシートはselectできないと思うが

121:デフォルトの名無しさん
20/09/08 19:10:47.69 E23V8S4o0.net
>>110
Forの中身が間違ってるとか別のブックを見てるとか
ほんとに選択したいシートが選択されてるか確認した?

122:デフォルトの名無しさん
20/09/08 20:06:33.41 qXkQmTRa0.net
>>118
クォーテーション外してやってみたけど上手くいかないです...
初心者なんで拙いですが、一応自分で書いたものをのせます。
既出のデータを整理して2次元チャートを作成する目的です。
Dim cnt As Integer
Dim x As Long
Dim y As Long
x = 0
y = 0
For x = 0 To 10
For y = 0 To 10
cnt = WorksheetFunction.CountIfs(Range("B2", Range("B2").End(xlDown)) "<=" 0 + x, Range("B2", Range("B2").End(xlDown)) ">= -1" & x, Range("C2", Range("C2").End(xlDown)) "<= 0" & y, Range("C2", Range("C2").End(xlDown)) ">= -1" & y)
Cells(x , y) = cnt
Next y
Next x

123:デフォルトの名無しさん
20/09/08 20:34:38.38 E23V8S4o0.net
いつも人任せだな…
そのcountifの引数の中身が自分の意図した内容かなんで確認しないの?

124:デフォルトの名無しさん (ワッチョイ 5fb5-/qgI)
20/09/08 21:43:07 MiWYYVaX0.net
もう30過ぎて勉強もなぁ…って手が進まない
VBAを知識をパンパンに詰め込んでああこれねって感じでカタカタと打ち込んでプロシージャ作りたいもんだわ

125:デフォルトの名無しさん (ワッチョイ e77c-ALHH)
20/09/08 21:57:43 E23V8S4o0.net
考えることを人に丸投げしてるだけで勉強は関係がない

126:デフォルトの名無しさん (ワッチョイ 5fb5-/qgI)
20/09/08 22:00:12 MiWYYVaX0.net
人に丸投げというかネットで拾ったものの組み合わせでいつも何とかしてしまう
知識がほとんど入らない
異動希望出してるしなぁ

127:デフォルトの名無しさん
20/09/08 22:06:16.19 aT8iqlgZ0.net
エクセルの指定列から3列コピーしてその4列目に挿入して貼り付けた後セルに入ってる値を消すコードをRangeじゃなくてCellsでやりたいです。
clmtar=10
10〜13列をコピー
14列目に挿入
14〜17列目のセルの値クリア。

128:デフォルトの名無しさん
20/09/08 22:11:08.52 +kf0/gdp0.net
>>127
コピー後の値を消すの?
元通りになるだけだと思うけど

129:デフォルトの名無しさん
20/09/08 22:29:42.46 C66iYfBu0.net
>>126
愚痴る暇があったら入門書かって1ページでもいいから読んでろ

130:デフォルトの名無しさん
20/09/08 22:34:56.39 MiWYYVaX0.net
>>129
すんません…なんか職場でおばちゃんがあれも作ってとか調子こいてるだけで
こりゃまた愚痴だわ
これぞ!っていう入門書ありますかね
イチからガチで鍛えてみるかな

131:デフォルトの名無しさん
20/09/08 22:36:08.93 8mxHLcBxa.net
>>126
なんとかできてるならそれも実力のうちなのだと思うよ
楽しい、自分ならこうしてみたい、こうしたらどうなるのだろう
とかがないならそこまでだけど

132:デフォルトの名無しさん
20/09/08 22:40:05.68 MiWYYVaX0.net
ネットで検索
プロシージャを組み合わせたり簡単なところをイジる
出きたと思ったら会社のメルアドにプロシージャ貼り付けたテキスト送る
会社で組み合わせる
UserFormのボタンに割り当て
これでごまかしつつやってきた
圧倒的な知識が欲しいなぁと

133:デフォルトの名無しさん
20/09/08 22:47:12.09 C66iYfBu0.net
>>130
それすら他人に頼るようじゃいつまでたっても進まない

134:デフォルトの名無しさん
20/09/08 22:50:54.91 E23V8S4o0.net
今までどおり困ったら初心者ですとか勉強中ですとかで知識ないアピールで人にやらせて突っ込まれたら謎の正当化とどうでもいい言い訳で誤魔化してやっていくんだろうな

135:デフォルトの名無しさん
20/09/08 22:52:28.72 MiWYYVaX0.net
ネットで調べてなんとかなってしまう時代のせいだよね
俺は悪くない

136:デフォルトの名無しさん (アウアウウー Sa8b-yCsQ)
20/09/08 23:27:06 HhRrDF1oa.net
そういう人が増えてきたからあんまり教えないようにしてる

137:デフォルトの名無しさん
20/09/09 00:19:56.45 akgtbWjMM.net
ゆとり世代の特徴だぞ

138:110
20/09/09 00:23:30.44 Lvk20igu0.net
>110です。
書き込み後にいろいろググったところ、いくつかのサイトで
コードからの保存はbeforeSaveイベントが正常に働かない旨の記載がありました。
今回の事象もこれに当たるのかなと考えています。
そんな訳で、ボタンでの保存はenableEventsをfalseにして別処理にしました。
回答くださった皆様、ありがとうございました。

139:デフォルトの名無しさん (ワッチョイ eab5-mjPJ)
20/09/09 00:53:57 0o8c0VF10.net
別にここで聞いても答えなんて返ってこないし期待してないのでご安心を

140:デフォルトの名無しさん (ワッチョイ 39e6-Pwf7)
20/09/09 01:12:42 VoppH/up0.net
足し算がわかりませんとか言われても入門書でも読めとしか言えないよな

141:デフォルトの名無しさん
20/09/09 04:06:45.89 Y+JI74HRa.net
入門書読めと言うとどの入門書がいいか聞いてくるよ

142:デフォルトの名無しさん
20/09/09 08:19:04.77 z9RILJ2v0.net
入門書を紹介すると今度はどこで買えばいいか聞いてくるよ

143:デフォルトの名無しさん
20/09/09 09:27:32.52 8tppu1V70.net
通販で買えって言うとお金がないって言ってくるよ

144:デフォルトの名無しさん
20/09/09 09:43:27.85 9AZapVJXM.net
お金あげると姿をくらますよ

145:デフォルトの名無しさん (ワッチョイ 397c-bL/7)
20/09/09 10:03:14 I5K9tGVf0.net
しかも捨て台詞付きで

146:デフォルトの名無しさん
20/09/09 10:37:20.74 KbsHkxtjM.net
すみません。ちょっと長くなってしまうのですがTreeViewをいじっているうちに分からない事があったので教えて下さい。
TreeViewの子ノードをD&Dでリストボックスにコピーする動作を作っていたのですが、ドラッグ開始時点のSelectedItemを取得しようとすると1度子ノードをクリックした上でD&Dを行う必要がありました。
その為、既定引数のIPOS,yPOSを使ってHitTestをSelectedItemに代入しようとしました。
しかしそれが上手く動作せず色々調べた結果、
xとyに*15をすると言う記述を見つけ試してみたところ、思い通りの動作を得られました。
しかしながらこの15はなんの15なんだ。他の環境ではこの数値は変わるのか。変わるならば何を元に算出すれば良いのだろうか。
という疑問が浮かびました。
お手数をお掛け致しますがお分かりになる方がいらっしゃいましたらご教授頂けませんでしょうか。

147:デフォルトの名無しさん (ワッチョイ 6a2f-sa+Q)
20/09/09 14:26:55 dKuEV/F30.net
まずその15をかけるってどこに書いてあったんだよ

148:デフォルトの名無しさん (アウアウカー Sa55-hUiG)
20/09/09 16:31:31 0Qh2iKtEa.net
Windows標準のシステム解像度だとピクセルとTwipsの比率が1:15だからってスタックオーバーフローに書いてあった

149:デフォルトの名無しさん (ラクッペペ MM3e-AH3D)
20/09/09 17:07:35 cdbk3sfrM.net
c言語のdefineに相当する文法は無いですか?
constだと違和感がありますので

150:デフォルトの名無しさん (ブーイモ MM8e-+eY2)
20/09/09 17:36:02 KbsHkxtjM.net
>>148
助かります
ありがとうございました

という事は使用環境次第では正常に動作しない場合も有り得るって事なのですね。対策を検討してみます。

151:デフォルトの名無しさん
20/09/09 17:50:55.91 jCqtOC3ba.net
>>149
どこに違和感があるのかを言わないと案を出せません

152:デフォルトの名無しさん (ワッチョイ 2a1f-ah1O)
20/09/09 20:59:39 ynJDkc680.net
>>128
コピー後挿入したら隣に3列追加されてセルの長さもコピーした3列と同じになりますよね?

153:デフォルトの名無しさん (ワッチョイ 397c-bL/7)
20/09/09 21:05:53 I5K9tGVf0.net
列幅をコピーすればいいのでは…

154:デフォルトの名無しさん (ワッチョイ 3d3d-PnJR)
20/09/09 21:18:50 Uey8EdNp0.net
>>152
幅を一緒にしたいなら最初からそう書けば良かったのに

155:デフォルトの名無しさん (ワッチョイ a95f-Sism)
20/09/10 00:02:31 a+RPoaYl0.net
>>149
あなたが思っているC言語のdefineの使い方は、コンパイラが置換するもので、定数の概念とは少し違いますよ?

156:デフォルトの名無しさん
20/09/10 00:04:04.82 a+RPoaYl0.net
>>152
そもそも列の挿入操作が必須なのか?

157:デフォルトの名無しさん
20/09/10 00:05:42.63 a+RPoaYl0.net
列の挿入なんてあちこちに影響するから、やりたがる理由がわからない。

158:デフォルトの名無しさん (アウアウウー Sa21-zN8f)
20/09/10 01:40:18 JZj4+m/Aa.net
条件付き書式が壊れたりすると面倒

159:デフォルトの名無しさん (ワッチョイ a95f-Sism)
20/09/10 02:24:17 a+RPoaYl0.net
自分の操作と同じ手順を踏みたいだけなんだろうね

プログラマではない素人感覚

160:デフォルトの名無しさん
20/09/10 04:18:44.38 026ADmyCa.net
test

161:デフォルトの名無しさん (ブーイモ MM8e-4twR)
20/09/10 07:50:51 T4cQI13RM.net
超初心者なんだけど
配列の中から指定値の近似値の座標を検索するのにいい感じの方法はないでしょうか
(以下、以上、完全一致全て含めての近似値)

162:デフォルトの名無しさん
20/09/10 08:50:52.35 l+lun8zfM.net
どうせ大した数じゃないんだろ
総なめしろよ

163:デフォルトの名無しさん
20/09/10 09:29:12.78 rdKJuFJTa.net
>>161
for eachで比較対象値と指定値を全て比較して、結果出力してその中でMIN関数使えば

164:デフォルトの名無しさん
20/09/10 10:03:54.29 QatXFD490.net
>>161
前もってソートした配列作って二分探索か、
配列の値-指定値の絶対値が最小になる値を探す

165:デフォルトの名無しさん
20/09/10 10:32:25.89 vUgEJ8vWd.net
Min(Abs(配列-指定値))

166:デフォルトの名無しさん
20/09/10 12:18:21.67 tJgZROmkM.net
指定値と配列値の差分を絶対値にして比較した場合、
指定値が5だとして
配列  差分(ABS)
4     1
7     2
となり、最小の差分は1とわかる
座標を知りたいので指定値(5)-差分(1)=4となり、配列の中から4を検索して座標を調べればいいのかなって思ってたんだけど
絶対値で出てくると5-1か5+1どっちを検索すればいいか不明じゃないですか?
そこらへんを解決する方法があれば聞きたいです

167:デフォルトの名無しさん
20/09/10 12:33:38.92 l+lun8zfM.net
ひとつに絞りたいならお前がルールを決めればいい
お前に決定権がないなら保護者に聞け

168:デフォルトの名無しさん (ワッチョイ 7d01-pVuC)
20/09/10 12:50:19 /arv21np0.net
ExcelVBAのフレームワークってないんですか?

PHPやJavascriptはまずフレームワーク覚えるもんだと思うのですが
VBAだとそういうのが見当たらなくって・・・

169:デフォルトの名無しさん (ブーイモ MM81-m2CW)
20/09/10 12:52:37 sAyQhYLaM.net
見よう見まねで結構大掛かりなマクロを作った
情シスには程遠い事務の部署で
改善賞1万円
うーんもうちょい欲しかった

170:デフォルトの名無しさん (スフッ Sd0a-EJMP)
20/09/10 13:06:54 PB4qSPsyd.net
オフイスを便利に使うためのお手軽言語でフレームワークの勉強とかやってたら非効率な上に大したメリットもない

171:デフォルトの名無しさん
20/09/10 13:09:58.25 4uvZuCuyM.net
フレームワークという意味ではVBAそのものがVB6のOffice向けフレームワーク
さらに言えばExcel向けに特化したものがExcelVBA
他のOfficeソフトにもそれぞれのVBAがある

172:デフォルトの名無しさん
20/09/10 13:11:29.05 XKC0VKf0M.net
>>167
一つに絞りたいというか最も近しい値を知りたいのです
指定値が5のとき、配列が4と7なら4を、3と6なら6の座標を調べたい
1万行は超えるから総なめはちょっと…

173:デフォルトの名無しさん
20/09/10 13:21:59.05 4mlwjCSed.net
>>172
パソコンにとっては「たった」1万行だよ
総舐めが一番簡単だし、開発時間も含めれば一番早い

174:デフォルトの名無しさん
20/09/10 13:23:29.76 4mlwjCSed.net
総舐めでもここでグダグタ言ってる間に結果が出る

175:デフォルトの名無しさん
20/09/10 13:38:32.36 l+lun8zfM.net
>>172
は? 質問は4と-4だろ?
もう俺が決めてやるよ
-4にしろ、はい解決

176:デフォルトの名無しさん
20/09/10 13:41:25.58 Yq3PJL3D0.net
セルを弄くり回すとかじゃなくて配列のまま総舐めするなら1万行ぐらいすぐ終わるでしょう
指定した値aの近似値が欲しいなら
If a-x<=Array(i) And a+x>=Array(i) Then
とかで引っ掛かる奴を引っ張り出すなりなんなりすりゃあ良い

177:デフォルトの名無しさん
20/09/10 13:43:28.62 l+lun8zfM.net
あ、ごめん
俺が質問を勘違いしてたわ

178:デフォルトの名無しさん
20/09/10 13:48:20.19 Yq3PJL3D0.net
近似値の範囲が不定で最も近い値を探すって言うならRank関数とかLarge関数とかSmall関数使うのも手

179:デフォルトの名無しさん
20/09/10 13:50:34.65 l+lun8zfM.net
>>168
各オブジェクトに多数のイベントが設定されているでしょ
windowsのプログラミングはイベントドリブンが基本
ブックが開いた、ボタンが押された、マウスが動いたなどのイベントに対するコードを書いていけばアプリケーションが完成する

180:デフォルトの名無しさん (ワッチョイ 3dad-sCec)
20/09/10 18:35:00 VdzBOqiR0.net
すみません今宿題でこれやってるんですけど打ち込んでもなにも出ないのですがなぜでしょう

181:デフォルトの名無しさん (ワッチョイ 3dad-sCec)
20/09/10 18:36:01 VdzBOqiR0.net
URLリンク(i.imgur.com)
これです

182:デフォルトの名無しさん (ワッチョイ 6a42-vvkI)
20/09/10 19:09:29 yo745YZ80.net
打ち込んだだけで実行してないからじゃね

183:デフォルトの名無しさん
20/09/10 19:30:20.82 L0+T18/AM.net
どこに打ち込んだかも分からないしなんとも

184:デフォルトの名無しさん
20/09/10 19:46:53.46 cO3BfNoWM.net
汚えコードだな

185:デフォルトの名無しさん
20/09/10 19:55:23.47 T9YJeJvx0.net
>>166
コードが汚すぎる

186:デフォルトの名無しさん (ワッチョイ 11da-pVuC)
20/09/10 20:10:09 QatXFD490.net
>>181
セルの幅や高さは初期状態?

187:デフォルトの名無しさん (ワッチョイ 11da-pVuC)
20/09/10 20:12:24 QatXFD490.net
あ、なんでもない

188:デフォルトの名無しさん (ワッチョイ 11da-pVuC)
20/09/10 20:17:20 QatXFD490.net
普通に動いたんで入力ミスとか環境の問題かな

189:デフォルトの名無しさん
20/09/10 20:49:46.36 Rp5mNNXSd.net
パズルゲームを作ってます。
セルを奇数列から横2マス選択してドラッグさした場合に、移動先が同じ奇数列から始まる場所なら許可。偶数列から始まる場所に移動した場合は不可にして移動をキャンセルさせたいんですがどうしたら出来ますか?良いEVENTってあるんですかね?

190:デフォルトの名無しさん
20/09/10 21:52:44.31 WalExY5Hd.net
>>180
そのまま入力してちゃんと動いたから、問題文には間違いはない
URLリンク(i.imgur.com)
それにしても学校の宿題だとしたらひどすぎるな
先生がこんなに汚いコードしか書けないとか生徒がかわいそう

191:デフォルトの名無しさん
20/09/10 21:54:41.31 WalExY5Hd.net
ああ最後の方に入力ミスあったわごめん

192:デフォルトの名無しさん
20/09/10 21:56:12.36 WalExY5Hd.net
>>189
SelectionChange

193:デフォルトの名無しさん
20/09/10 21:56:18.66 a+RPoaYl0.net
>>181
コメント行の終わりにシングルクォーテーションが付いているのは初めて見たw
コメントというより、文字列リテラルに見えてくるw

194:デフォルトの名無しさん
20/09/10 21:57:24.01 b8lNN7jK0.net
>>190
こんな意図がこんなに読みづらいコード初めて見たわ

195:デフォルトの名無しさん
20/09/10 22:01:54.82 qPrgFXQ2a.net
>>181
先生変数宣言しないの?

196:デフォルトの名無しさん
20/09/10 22:06:42.97 YMu2GFxia.net
教師は必ずしもコード書いてた人じゃないししゃあないんちゃう

197:デフォルトの名無しさん
20/09/10 22:22:10.32 6Lj7sAI40.net
>>180
馬鹿過ぎる帰れ

198:デフォルトの名無しさん
20/09/10 22:28:05.12 WalExY5Hd.net
>>193
HTMLみたいにコメントが改行で終わるとは限らない言語はまれによくあるけどな
それよりもインデントの汚さと、Cellsのパラメータにx, yを使ってるあたりがめちゃくちゃ気になる

199:デフォルトの名無しさん
20/09/10 22:28:20.02 QatXFD490.net
Kirakira1 のコードにそっくりなのが検索で見るかるけど
そっちでは変数宣言しているw

200:デフォルトの名無しさん
20/09/10 22:31:17.53 /qwml5cpa.net
これか
URLリンク(my-tax-nology.com)
>>マクロ(Excel VBA)を使えば、簡単なアニメーションを作ることができます。
>>アニメーションを作っていると楽しいだけでなく、プログラミングのスキルアップに繋がります。
なるほど??

201:デフォルトの名無しさん
20/09/10 22:37:08.36 uWh6vQvPa.net
エクセルVBA は当分なくならないですかね

202:デフォルトの名無しさん
20/09/10 22:43:44.96 WalExY5Hd.net
>>200
VBAを教えてるサイトでコメントをシングルクォートで閉じたりカッコを全角で書くやつなんて世界に一人しかいない
本人ならDimやインデントはちゃんと書くはずだし、完全にパクリだな

203:デフォルトの名無しさん
20/09/10 22:59:03.63 VdzBOqiR0.net
180ですなんとかできました。ド素人なんで申し訳ない
このコードはそんなできのいいものじゃないんですか?
先生凄く威圧的でいつもそんなんもわからんのかみたいな喋り方なんすけど

204:デフォルトの名無しさん
20/09/10 23:10:15.32 8/CQSYne0.net
すまん
wsfやhtaでvbs書くとき 'コメント' って書くわ
エディタの色付けがjs用だから

205:デフォルトの名無しさん
20/09/10 23:26:05.51 8/CQSYne0.net
>>203
「なんで乱数を整数化するのにRoundを使ってしまったんですか?」って聞いてみて

206:デフォルトの名無しさん
20/09/10 23:27:44.84 a+RPoaYl0.net
他の言語でも行コメントで見出し風にするプロはそれなりにいる。
ただ、初心者に教える人間が行コメント構文を、ブロックコメント構文と同じ使い方をするのは、初心者を混乱させるだけで、何のメリットもない。

207:デフォルトの名無しさん
20/09/10 23:29:02.40 b8lNN7jK0.net
>>203
なんで変数宣言しないんですか?
なんでx1とかわかりづらい命名するんですか?
なんでx1とかを上書きするようなわかりづらい変数の使い方してるんですか?
インデントの使い方に意図はありますか?
6の意味が説明されないとわからないのは不親切ですね
などなど…色々質問してみたらいいよ

208:デフォルトの名無しさん
20/09/10 23:31:52.10 ewRWdYKCd.net
>>203
その先生は、少なくともVBAの知識だけは大したことないことは誰が見てもわかる
ほかの言語のエキスパートでVBAをバカにする人もいるけど、人に教えるんならちゃんとしろと思う
>>199
よく見つけたな

209:デフォルトの名無しさん
20/09/10 23:31:53.48 a+RPoaYl0.net
>>205
それもなんか見ると気になるな。コードの順番も変だし、数値の精度やデータ型をわざとヘンテコにしているのかも謎。

210:デフォルトの名無しさん
20/09/10 23:33:45.89 ATM2a6JOd.net
>>205
Rndの定義から考えればIntを使うのが自然だけど、まあそこは100%間違いとは言い切れないからなあ

211:デフォルトの名無しさん
20/09/10 23:33:50.53 a+RPoaYl0.net
その先生だと6は数値ではなく数字です!
マジックナンバーって何と言いそうw

212:デフォルトの名無しさん
20/09/10 23:34:53.46 ATM2a6JOd.net
コードのおかしさは、その先生よりコピペ元のサイトの責任だろ

213:デフォルトの名無しさん
20/09/10 23:37:35.65 8/CQSYne0.net
>>212
ドコモロは黙っててくれないか

214:デフォルトの名無しさん
20/09/10 23:43:13.95 b8lNN7jK0.net
>>212
教える側の立場として教材として使うかどうか判断したんだから元のところに責任はねーだろ
なんか改悪もしてるし

215:デフォルトの名無しさん
20/09/10 23:50:48.35 Q3JELDTy0.net
ループの外でウエイトしてたら速すぎてキラキラしないんじゃ…。
紙に書いてある方。

216:デフォルトの名無しさん
20/09/10 23:52:06.33 2cDIJpauM.net
>>200
こいつもかなり怪しいな
i, jを宣言してないし、変数をゼロクリアしてるのも謎

217:デフォルトの名無しさん
20/09/10 23:53:08.37 /1fuNzSOa.net
>>215
確かに言われてみれば
キラキラの意味

218:デフォルトの名無しさん (ワッチョイ a95f-Sism)
20/09/11 01:20:18 66INGyZB0.net
>>216
本業が税理士なのに、詳しくもないことをひけらかすやつだから、税理士としてもいまひとつの癖のあるやつだと思う。

219:デフォルトの名無しさん (ワッチョイ a95f-Sism)
20/09/11 01:22:28 66INGyZB0.net
>>216 彼も他人のパクリなのかもね

220:デフォルトの名無しさん (ワントンキン MM7a-nV8z)
20/09/11 01:27:34 iTcJm+RBM.net
ゆとり世代の馬鹿に教えるゆとりかよ

221:デフォルトの名無しさん
20/09/11 08:33:42.89 L6SxevYWd.net
>>146
そいつはバグだと思うよ。
Mougで質問してた人がいて、俺も試したけどTreeViewでのD&Dで座標がバグってる。
で、15ってのはそのバグを何とか実情に合わせたものだと思う。
俺もその時似たようなことやって15っていう数字には覚えがある。

222:デフォルトの名無しさん
20/09/11 09:37:00.89 mn04Qg6+M.net
>>221
>>146 です。色々調べた結果、TreeViewのMouseMoveやMouseDownのイベントで渡される座標が他のフォームとは異なりピクセルで渡される事が原因でした。
なのでGetDesktopWindow,GetDC,GetDeviceCapを用いてDPIを取得し、
取得した値で1440(1440twips=1Inch)を割り、
その値をピクセル数に掛ける事でポイントでの換算に成功しました。
標準の設定ですとDPIが96になるそうなので1440/96で15、となるようです。

223:デフォルトの名無しさん
20/09/11 16:13:39.65 qEgHhc430.net
VB6だとScreen.TwipsPerPixelXってあったんだがなあ
VBAだとPointsToScreenPixelsXとかあるなと思ってみてみたけど、これ、つねに72DPIで計算するっぽいな

224:デフォルトの名無しさん
20/09/11 18:44:31.89 +9zmYtvxd.net
>>192
それだと1回めの選択範囲で動いて、移動したら動きますよね?
1回目の行や列を記憶させて2回目で比較する感じですか?

225:デフォルトの名無しさん
20/09/11 22:11:41.98 L6SxevYWd.net
>>222
>>223
うん、その辺みんな知ってるけどTreeViewの問題って違ってたと思うんだが。

226:デフォルトの名無しさん
20/09/12 08:12:41.83 cGm6fMBf0.net
動的配列に値を追加していきたいのですが要素番号を0ではなく1から始める方法はありませんか?

227:デフォルトの名無しさん
20/09/12 08:24:59.90 OyGZa+nz0.net
Sub testtttt()
Dim arr() As Variant
ReDim arr(1 To 1)
arr(1) = 10
ReDim Preserve arr(1 To 2)
arr(2) = 20
ReDim Preserve arr(1 To 3)
arr(3) = 30
MsgBox arr(1) & " " & arr(2) & " " & arr(3)
End Sub
ちょっとはぐぐれよな
URLリンク(www.relief.jp)

228:デフォルトの名無しさん
20/09/12 08:28:00.30 FkIM4E0+M.net
『[ VBA ]「Option Base 1」使うなよな!反論は聞かない!』

229:デフォルトの名無しさん
20/09/12 15:06:14.92 X8G1U5XY0.net
アレイリスト使うほうがかんたんじゃね?

230:デフォルトの名無しさん
20/09/12 20:26:44.99 +6u/uPRn0.net
先頭を1にするのはセンスないね

231:デフォルトの名無しさん
20/09/14 18:06:26.03 YLQY1Qz5r.net
i++とか+=使えないのマジで不便だな
前置インクリメントもできないし一行でもend ifとかloop書かなきゃいかんしめんどくさくね?
この言語もうちょい進化しないの?

232:デフォルトの名無しさん
20/09/14 18:10:50.73 CnoY9xmOM.net
1行でEnd If書きたくないならThenの後に半角スペースいれたら改行しないで処理書いてみ
++とかは禿同


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1323日前に更新/123 KB
担当:undef