20/04/07 08:07:32 FCg3JG5md.net
>>186
CSVをWorkbook.Openで開くのが駄目。
OpenステートメントとかFileSystemObject使う方が良い。
201:デフォルトの名無しさん (ワッチョイ 2342-uUuo)
20/04/07 09:12:43 +6IcJjJU0.net
>>197
そんなの職場や利用目的によりけりだから
202:デフォルトの名無しさん
20/04/07 12:34:06.90 y7/AcPOrM.net
コントロールパネルからプリンタのプロパティで片面印刷に設定したんだけど片面印刷オンリーになりません
どうしたらいいですか?
203:デフォルトの名無しさん
20/04/07 12:42:21.74 RfysvMTgr.net
やったこと全部書き出してプリンターメーカーに聞け
204:デフォルトの名無しさん (ワッチョイ b501-tb4t)
20/04/07 15:41:03 AQdBAJYM0.net
特定の文字列のみ文字色を変えたいんだけど、
置換を使うと指定した文字列を含むセルに入力されている全ての文字の色が変わってしまう…
現状では数百数千セルある中から文字列を選択して文字色変更を繰り返す、という辛い作業を続けているのですが
この様に、指定した文字列だけの色を変更って出来ませんか?
205:デフォルトの名無しさん
20/04/07 17:49:52.17 yHbrhPie0.net
>>204
Sub 特定文字列に色をぬる(検索範囲 As Range, 対象文字列 As String, 色 As Long)
Dim r As Range
For Each r In 検索範囲
Dim s As Long
s = InStr(r.Characters.Text, 対象文字列)
If s > 0 Then
r.Characters(s, Len(対象文字列)).Font.Color = 色
End If
Next
End Sub
206:デフォルトの名無しさん
20/04/07 19:26:33.02 FCg3JG5md.net
>>205
何か少し違う気がする。
rの中で対象文字列が1回しか変わらないんじゃね?
s=instr(s+1,r.Value,対象文字列)でsが0になるまでループかな?
207:デフォルトの名無しさん
20/04/07 19:29:30.91 ZYiBkzsm0.net
何から覚えようVBA
208:デフォルトの名無しさん
20/04/07 19:42:05.21 F7VfxkGZ0.net
>>198
やってみてどうなった?
209:デフォルトの名無しさん
20/04/07 20:04:27.93 4wIwYA/Ra.net
>>207
覚えるのが目的じゃなかろう
210:デフォルトの名無しさん (ワッチョイ 23ad-KBPB)
20/04/07 20:22:06 83dL758F0.net
>>187,190,200
186です。ご回答有難う御座います。
ご指摘を参考に以下の様な形に変更したところ、強制終了する事なく全ファイルの吸い上げが出来ました。お手数をお掛け致しました。
'// ファイル数カウント //
Dim CSVPth As String, CSVNam As String
CSVPth = Dir(CSVDir & "*.csv")
CSVNam = CSVPth
Do While CSVPth <> ""
CSVPth = Dir()
CSVNam = CSVNam & CSVPth
Loop
Dim CSVAry As Variant, CSVCnt As Long
CSVAry = Split(CSVNam, ".csv")
Dim OutAry() As Variant
ReDim OutAry(1 To (UBound(CSVAry) + 1) * 6, 1 To 1)
Dim LinAry As Variant, LinStg As String, LinCnt As Long
'// CSVファイル読込処理 //
For CSVCnt = LBound(CSVAry) To UBound(CSVAry)
If CSVAry(CSVCnt) <> "" And Dir(CSVDir & CSVAry(CSVCnt) & ".csv") <> "" Then
Open CSVDir & CSVAry(CSVCnt) & ".csv" For Input As #CSVCnt + 1
LinCnt = 0
Do While Not EOF(CSVCnt + 1)
Line Input #CSVCnt + 1, LinStg
LinCnt = LinCnt + 1
LinStg = "" & Replace(LinStg, """", "") & ""
LinAry = Split(LinStg, ",")
<-- 処理 -->
ReDim Preserve OutAry(1 To (UBound(CSVAry) + 1) * 6, 1 To WorksheetFunction.Max(UBound(OutAry, 2), LinCnt)
Loop
Close #CSVCnt + 1
End If
Next Range(Sheet2.Range("A1"), Sheet2.Cells(UBound(OutAry, 2), UBound(OutAry, 1))).Value = WorksheetFunction.Transpose(OutAry)
211:デフォルトの名無しさん (ワッチョイ 5dce-bVUD)
20/04/07 21:04:34 YDovvV0g0.net
Windows10になってから、アプリごとに印刷設定を覚えるようになってややこしくなった
以前はプリンタのプロパティからデフォルト状態を決め打ちできたのに
212:デフォルトの名無しさん
20/04/07 22:46:04.39 yHbrhPie0.net
>>206
その辺は仕様がはっきりしないから何とも言えんし
そもそも丸投げを受けたつもりはない
s+1だとaaaaaにたいしてaa指定したら5文字全部色変わるけどそれが良いのかどうかわからんだろ
213:デフォルトの名無しさん (ワッチョイ e202-slfm)
20/04/08 03:24:16 PBw6emZJ0.net
4文字目から3文字赤に変えたマクロの記録
ActiveCell.Characters(Start:=4, Length:=3).Font.ColorIndex = 3
214:デフォルトの名無しさん
20/04/08 19:41:01.55 uS6fz3VF0.net
まさかシート毎に印刷の画面から片面印刷を選ばなきゃ両面印刷をされるなんて知らなかったわ
215:デフォルトの名無しさん
20/04/08 19:55:07.25 o5xrKhXHa.net
プリンター関係の情報はシートごとになってるから。
手動ですべてのシートを両面印刷にする方法はあるけど。
216:デフォルトの名無しさん
20/04/08 20:05:36.79 T31Wtd0td.net
シート全選択してプリンタ設定変更してからやればいい
217:デフォルトの名無しさん
20/04/08 20:16:40.48 o5xrKhXHa.net
シート全選択してプリンター設定してもダメなんですよね。
218:デフォルトの名無しさん (アウアウウー Sabb-Fqhg)
20/04/08 20:32:27 wSF4QqHVa.net
あきらめろん
219:デフォルトの名無しさん (スププ Sd02-bmmP)
20/04/08 20:37:06 T31Wtd0td.net
>>217
上書き保存してファイルを開き直せ
220:デフォルトの名無しさん (ワッチョイ f71f-nfbJ)
20/04/08 22:17:54 Tninom9X0.net
dwgファイルをどうにかしてEXCELに図形で取り込みたいんだがなんか方法ありません?
家の見取り図みたいなファイルなんだけど。
221:デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
20/04/08 23:34:26 W1XPdmgi0.net
>>220
DXFに変換
222:デフォルトの名無しさん
20/04/09 03:10:49.06 lF+KAcZx0.net
>>220
後輩にやらせる
223:デフォルトの名無しさん
20/04/09 04:58:57.51 yf4TGzZj0.net
>>220
JacConvert
224:デフォルトの名無しさん (オッペケ Sr5f-5Z7F)
20/04/09 07:53:04 q52/CIa+r.net
セル右クリックしたら出てくるメニューを禁止に出来ない?
書式設定とかコピーとか貼り付けとかメニュー自体出ないように
225:デフォルトの名無しさん (スップ Sd22-ELgU)
20/04/09 07:57:33 YKVVyHYsd.net
>>224
サブクラスで出来るかどうか。
ここには答えられる程の上級者が居ないと思う。
226:デフォルトの名無しさん
20/04/09 08:14:30.62 44A41Mtl0.net
保護かければ?
227:デフォルトの名無しさん
20/04/09 08:18:29.24 q52/CIa+r.net
>>226
保護かけると使えなくなる機能があるから無理なんだ
228:デフォルトの名無しさん
20/04/09 08:39:31.78 K8984GmW0.net
これは?普通にググったら出てきたぞ
URLリンク(www.moug.net)
229:デフォルトの名無しさん
20/04/09 09:20:01.56 x5VgstST0.net
普通にやり方あるぞ
230:デフォルトの名無しさん (ササクッテロラ Sp5f-zMEH)
20/04/09 12:24:02 wcbpQmosp.net
エクセル2007についてです
セルをクリックすると、カレンダーが表示されて、そのカレンダーの日付をクリックすると、セルに日付が挿入される
という形にしたいのですが、ここで問題があります
一つはAccessがないため、カレンダーコントロールがないのと、もう一つはインターネット接続不可端末のため、どこからかDLするというのができないです
この場合のカレンダーから日付取得をするというのはできないのでしょうか?
231:デフォルトの名無しさん
20/04/09 12:30:31.66 8gmsr/Td0.net
>>230
ボタンを横7列、縦6つ並べたカレンダーコントロール的なフォームを自作すればいい
URLリンク(ateitexe.com)
232:デフォルトの名無しさん
20/04/09 12:31:40.44 veSARJt1M.net
カレンダーのシートを作って、そこから選択させるとか
233:デフォルトの名無しさん
20/04/09 13:01:14.59 wcbpQmosp.net
>>231
早速参考にさせていただきました
ありがとうございます
ただ、これ起動すると、日付クリックした後、テキストボックスに日付挿入になるので
どこかのコードにテキストボックスではなくてセル挿入になるようにしたらいいと思うんですけれど、どこに記述するのがいいですかね?
まだvbaいじり始めた身としてはここまで複雑だといじりづらいというか
234:デフォルトの名無しさん
20/04/09 20:27:14.43 PvaeZ0Ck0.net
>>224
BeforeRightClickイベント
235:デフォルトの名無しさん (ワッチョイ f71f-nfbJ)
20/04/09 21:58:32 TQ3Lwxfd0.net
>>221
調べるとDXFはTextファイル形式で出来ているみたいでネットで調べながらやってみたけど、重い。まぁ俺の書き方が駄目な気もするけど。線の数が4万とか超えてる。
236:デフォルトの名無しさん
20/04/09 23:05:01.47 vJBq1mcg0.net
作者不明のファイルを修正しているのですが、そのファイル自身を指定するのにファイル名で
記述してありました。これだと「●●Ver1.0.xlsm」→「●●Ver1.1.xlsm」のようにファイル名を
変える度にコードを修正しなくてはならないためThisWorkBookに変えようかと思っているのですが
その場合なにか弊害とかあるんでしょうか?
237:デフォルトの名無しさん (ワッチョイ e23e-1Ne1)
20/04/10 07:51:15 goOf5Ofq0.net
シートを全選択したら一括で変更できるのか
238:デフォルトの名無しさん (オッペケ Sr5f-vH9a)
20/04/10 08:26:28 tq9uLSTsr.net
>>236
弊害は無いよ
239:デフォルトの名無しさん (オッペケ Sr5f-q7V1)
20/04/10 09:37:44 Rte1PrgOr.net
そのファイル自身だと完全に明確で揺らがないなら、thisworkbookでいんじゃね
240:デフォルトの名無しさん (ワッチョイ c6da-AglQ)
20/04/10 19:23:44 LG9l2UEQ0.net
どこから参照されてるのか全部調べないとわからないんじゃないかそれ。
まあThisworkbookを知らないだけの可能性は高いが。
241:デフォルトの名無しさん (ワッチョイ eb5e-AglQ)
20/04/10 19:27:26 f64Irgef0.net
>>238,239
ありがとうございます。
今日内容を確認してきましたが、マクロが記述されたブック(A.xlsm)上でシートを作成し、それをコピーして
新規ブック(B.xlsx)を作成してからもう一度A.xlsmの特定のシートをアクティブにする、という処理の中で
A.xlsmのブック名を明示してありました。
今日は時間がなくて試せなかったのですが、この場合でもマクロが記述されたブックはA.xlsmなので
ThisWorkBookで問題ないかなと思ったのですが、それであっていますでしょうか?
242:デフォルトの名無しさん (ワッチョイ eb5e-AglQ)
20/04/10 19:38:53 f64Irgef0.net
>>240
ThisWorkBookを知らないというかちゃんと理解していないのはその通りだと思います。
ThisWorkBookの主体がが変わる場合があるということでしょうか?
マクロ実行中にほかのブックに記述されたマクロを利用したりすると変わる、とかですかね?
243:デフォルトの名無しさん (ワッチョイ 62ad-JJvI)
20/04/10 20:30:11 oDKSQVIR0.net
ThisWorkBookはプログラムが記述されているワークブックを参照せよっていう意味だからブックAを実行中にアクティブがブックBに切り替わったりしてもブックAに記述されたThisWorkBookはブックAを参照する
244:デフォルトの名無しさん
20/04/11 03:52:15.33 w8fV8nev0.net
エクセルテンプレートを開いた状態
↓
フォルダにある1つ目のtxtデータをエクセルテンプレにドラッグしてエクセル化
↓
エクセル化したC1:C8の範囲をコピー
↓
元々開いてあるエクセルのA1:A8に「数値」のみ貼り付け
↓
エクセル化されたデータは閉じて2つ目のtxtをドラッグしてエクセル化
↓
C1:C8の範囲をコピーしてテンプレのB1:B8に「数値」のみコピー
って感じでテンプレに測定機から出したデータをひたすら貼ってるんですが
これを簡単にするVBAとか可能ですか?
人によってはテキストをエクセル化はまとめて5つドラッグしたりして順番に貼ってく人もいます
エクセル化したデータの数値のみコピーしたいセルはC1:C8は固定
テンプレにはABCDと順番に貼って増やしていく
これをなんとかマクロかする案があればご教授お願いします。
245:デフォルトの名無しさん (ワッチョイ 4f5f-791I)
20/04/11 07:25:04 +FpWMQNh0.net
可能です。
246:デフォルトの名無しさん
20/04/11 08:08:50.84 X9U6v4B00.net
テンプレート(.xlt .xltx)は何に使うの?
247:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/11 10:50:20 w8fV8nev0.net
>>245
その一言でも希望があってありがたい
どういう流れで作ったらいいか何か構想のヒントなどあればいただきたいです
・テンプレのエクセルにボタン設置
・テンプレ開くと同時にユーザーフォーム開くようにしてテキスト選択できるようにするのか
・そもそもVBAがまだ人間になれてない猿並のスキル
>>246
テンプレは.xlsxです、普通のエクセルの
248:デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
20/04/11 10:56:04 DIdffniea.net
>>244
txtデータは、例えばカンマで区切られてるとか、空白で区切られてるとか、決まってるの?
内容的にはVBAがある程度使える人なら難しくないと思うけど、ちょっとネットで聞いて作ろうとかいうのは難しいんじゃないかな。
249:248
20/04/11 11:19:08.65 DIdffniea.net
txtファイルがどのくらいの数あるのかで、どういう手順が良いか違ってくると思います。
そんなにたくさんないなら、テンプレファイル(◯◯.xlsm )に、ボタンを用意。ボタンを押したらファイルを選択するダイアログが出て、該当のtxtファイルを選択してデータを読み込む。
txtファイルがたくさんあるとこの手順は面倒なので、同一フォルダに入れてなんらかの順番で読み込むようにするとか。
250:デフォルトの名無しさん
20/04/11 11:27:54.59 YvJJVii7M.net
>>248
そこら辺の知識がなくてとにかくテキストを、開いてるエクセルにドラッグすると決まったセル範囲に例えばC1:C5に欲しいデータが出るのでそれをコピーしてるのが現状です
イメージ的にいつも
URLリンク(i.imgur.com)
テキスト入ったフォルダとエクセルを並べる
↓
URLリンク(i.imgur.com)
ドラッグしてエクセル化
↓
URLリンク(i.imgur.com)
数値のみコピーしてテンプレに貼り付け
↓
URLリンク(i.imgur.com)
閉じた後、次のテキストをドラッグしてエクセル化
↓
URLリンク(i.imgur.com)
テンプレの次の列に貼り付け
これを日によっては70くらいやったりしてます、、
251:デフォルトの名無しさん
20/04/11 11:31:26.34 YvJJVii7M.net
>>249
レスありがとです!!!そこです!
日によってデータ数が違って
5つの日もあれば30の日もあれば75の日もあります
ボタン作って該当するデータの数を任意で選べたりできないのかなぁと妄想してます
252:デフォルトの名無しさん
20/04/11 11:41:57.94 YvJJVii7M.net
この貼り付けるエクセルはそもそもこんなのでテンプレなの?っていうは一応エクセルの関数で
他の何種類もあるシートに複数の関数で出せる紐付けしてあるので
テンプレというか自分なりのベースのようなものです
本当はその関数すら慣れてる人ならVBAで余裕で組むんだろうなと思うのですがそんな欲ばる資格がまだないのでまずはこの作業を…
253:デフォルトの名無しさん
20/04/11 11:45:20.84 DIdffniea.net
GetOpenFilenameメソッドでダイアログで複数のtxtファイルを選択するか、「転記前フォルダ」とかに対象のtxtファイル入れておいて、フォルダ内をfor eachですべて読み込むか。読み込み済みのtxtは自動で「転記済フォルダ」に入れるか削除。
どちらにしてもtxtファイルの名前順に読み込むようになるだろうから、そこを一工夫する必要があるかも。
254:デフォルトの名無しさん
20/04/11 12:37:41.59 9V4Tv9yv0.net
>>252
とりあえず、フォルダ内の全テキストを一気に読み込むやつを作った
専用のフォルダに必要なデータだけ入れて、フォルダ名を2行目に書いて
Sub Macro1()
ChDir "c:\tmp"
f = Dir("*.txt")
c = 1
Do While f <> ""
Open f For Input As #1
For r = 1 To 6
Line Input #1, s
Cells(r, c) = Split(s, vbTab)(2)
Next
Close #1
f = Dir
c = c + 1
Loop
End Sub
255:デフォルトの名無しさん
20/04/11 12:48:46.57 7ipBnOPU0.net
>>247
マクロ記録してそれを加工すればいい
256:デフォルトの名無しさん
20/04/11 12:55:48.43 Zf+aIjAZ0.net
>>254
うおおおお
マジでありがとうございます!
いま外出中なので帰ったら速攻でVBE開いて取りかかります!!
他のこんな猿にアドバイスくれる人達に感謝のみ
批判されて当然のスキルしかないのでそういう覚悟もして相談させてもらってます
6月くらいまでには形にして自分もある程度
コードのルールや流れを猛勉強します
>>255
それも頑張ります、まず加工する知能を身につけます
257:デフォルトの名無しさん (アウアウウー Sabb-Fqhg)
20/04/11 18:21:57 jjkr4EqGa.net
個人的にはCHDIRと#1ってのが
気になった
258:デフォルトの名無しさん
20/04/11 20:11:07.53 Lp6A5Woc0.net
恋だな
259:デフォルトの名無しさん
20/04/11 20:18:04.56 7YQkqL610.net
6月て
こんなんIT系の仕事じゃなくても普通に1日で理解するやろ。。
多分セルごとに書き込むからファイル数とデータによっては遅くなるな
260:デフォルトの名無しさん
20/04/11 21:02:43.27 Mh4soJ8e0.net
クリップボードに整形したデータ入れてペーストでもいいのよ
タブで右のセル
改行で次の行
261:デフォルトの名無しさん (ワッチョイ c28b-KRXG)
20/04/12 05:51:52 2Kcsozov0.net
VBAについて詳しい方に質問です。
現在VBAでオートフィルタの自動プログラムを組んでいます。
そこで質問があります。以下の様なデータがあったとします。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私の名前は、太郎です。
私の名前は、岩崎です。
あなたの名前は、太郎です。
あなたの名前は、岩崎です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
検索ワードとしてスペース区切りで「あなた 太郎」と入力された場合
「あなた」と「太郎」を同時に含む行のみをフィルタリングするには
どういう記述を Criteriaにすれば良いのでしょうか?
Criteria1:="*" & [検索ワード] & "*"
現在こんな感じで記述してますがうまく動きません。
AND条件、そしてOR条件で指定する方法を教えてくださいm(_)m
262:デフォルトの名無しさん (ワッチョイ c6da-AglQ)
20/04/12 08:05:06 YDpAYAt+0.net
>>261
それやるならオートフィルタじゃない。
アドバンスフィルタ。
263:デフォルトの名無しさん (ワッチョイ bb7c-slfm)
20/04/12 11:41:12 QKHzDSq80.net
>>261
シート上でオートフィルタかける時にできること以外のことはできない
264:デフォルトの名無しさん (ワッチョイ bb7c-slfm)
20/04/12 11:45:08 QKHzDSq80.net
どうしてもその記述でやりたいならワードをスペースで分割してから条件2つ指定する
265:デフォルトの名無しさん
20/04/12 13:12:18.32 2Kcsozov0.net
ありがとうございます。
アドバンスフィルタとやらを調べてみます。
266:デフォルトの名無しさん
20/04/12 13:17:20.10 bBYC6g030.net
>>261
And条件の場合はこう書く
Criteria1:="=*あなた*", Operator:=xlAnd, Criteria2:="=*太郎*"
267:デフォルトの名無しさん
20/04/12 13:39:43.30 2Kcsozov0.net
>>266
ありがとうございます!!
268:デフォルトの名無しさん
20/04/12 17:59:57.23 Vvo4XdlE0.net
いえいえ
269:デフォルトの名無しさん (ワッチョイ e2b5-L0r9)
20/04/13 01:44:02 sGzWGZEv0.net
>>254
これを、やってみたけどcellsのところでエラーがでます、うーん
頑張ります
270:デフォルトの名無しさん (ワッチョイ 4f5f-791I)
20/04/13 07:29:10 aaxqX2kx0.net
>>269
ヒント 変数 r
271:デフォルトの名無しさん (ブーイモ MM5b-qE1F)
20/04/13 08:13:39 q00oGNOiM.net
>ヒント
ウザっ
272:デフォルトの名無しさん (ワッチョイ 43ce-AglQ)
20/04/13 11:51:14 V+m1zN0B0.net
>>269
それはたぶん、txtファイルの中身が想定外
例えば5行以下しかないか、C列にデータが入ってないか
273:270
20/04/13 12:54:16.85 RFtb5de7M.net
>>269
すまん。変数 r はforで回ってた。
274:デフォルトの名無しさん
20/04/13 13:27:32.03 kcz/TGUB0.net
S列の2行目以降で、0.05以上でかつ、0.98以下の値の行を行ごと削除したいのですが、コードを教えてください
(最終行はA列から取得)
Dim tag As Variant
Dim a As Long
tag = Range("S1:S" & Cells(Rows.Count, 19).End(xlUp).Row).Value
For a = Cells(Rows.Count, 19).End(xlUp).Row To 2 Step -1
If tag(a, 19) <= 0.98 And tag(a, 19) >= 0.05 Then
Rows(a).Delete
End If
Next
275:デフォルトの名無しさん
20/04/13 14:19:37.44 V+m1zN0B0.net
>>274
Dim a As Long
For a = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If 0.05 <= Cells(a, 19) And Cells(a, 19) <= 0.98 Then
Rows(a).Delete
End If
Next
276:デフォルトの名無しさん
20/04/13 14:20:29.76 6KK4qS560.net
ワークシート機能とか使わないなら、
・その表を全て一気にもにょっと2次元配列(tableA)にいれる(コンマ数秒)
・2次元配列(tableB)を一旦定義
・tableAの各行(イメージね)をforeachする。++カウントする変数をつくる。これはtableBの行数。
・foreachのなかで、tableAのS列がその条件に合致しなければ、tableBに行のそれぞれの要素を代入する(redim preserveしながら)
・できたtableBをどこかにペタッと貼る
Excelぽくやるなら
・オートフィルタする
・2次元配列に一旦もにょっとコピーする(可視セルのみ、CurrentRegionかな)
・シートをクリアするか他のシートにコピーした2次元配列をペタっと貼る
277:デフォルトの名無しさん
20/04/13 14:21:50.93 6KK4qS560.net
ちなみに行をforeachしながら行を消すとズレが生じるんじゃね、しらんが
278:デフォルトの名無しさん
20/04/13 16:10:06.75 7RR5m+brM.net
>>254
色々いじっていますがこれをどう手直ししていいかわからず…
たとえばこれをテキストを変換したときにF2:F13にくるデータを
エクセルにはB5:B16、C5:C16と順番になるよるに出力するようになるにはどう調整すればいいのか、がんばって調べてます
279:274
20/04/13 16:10:57.06 kcz/TGUB0.net
>>275
ありがとうございます。
280:デフォルトの名無しさん (ラクッペペ MM8e-CJtn)
20/04/13 18:33:52 xh/6KDMeM.net
>>278
ヒント: F1キー
281:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/13 19:37:09 sGzWGZEv0.net
Sub テキストから引っ張る()
ChDir "C:\Users\user\Desktop\マクロ勉強" 'フォルダ指定
f = Dir("*.txt")
c = 2 'テンプレの開始する列の変更
Do While f <> ""
Open f For Input As #1 For r = 2 To 13
'テキストの引っ張ってくる行を指定
Line Input #1, s Cells(r, c) = Split(s, vbTab)(2) Next Close #1 f = Dir c = c + 1 Loop End Sub
猿には荷が重すぎるわ
せっかくここで凄いの貰ったのに頭が。
テキストをエクセル化したときのC列をF列に変更しようと思ったらすでにfが存在してて
どこを今度は変えたらいいかわかりません
282:デフォルトの名無しさん
20/04/13 19:44:03.37 V+m1zN0B0.net
>>281
cとかfは変数だよ
ワークシートの列じゃない
283:デフォルトの名無しさん
20/04/13 19:48:23.00 V6BYDDPb0.net
猿とか以前にそもそも基本知識すら身に付けてないのでは…
284:デフォルトの名無しさん
20/04/13 19:54:15.29 sGzWGZEv0.net
そう、変数なんだというとこまではぎりぎり何とかわかったんです
ただ、引っ張ってくるテキスト側の列をどこで制御してるのかがわからず
>>283
完全にその通り
単純に勉強不足
ネットでかじってばかりじゃダメだと古いけど本も借りました
ただ本当にマジで難しい…
URLリンク(i.imgur.com)
285:デフォルトの名無しさん
20/04/13 19:55:45.77 V+m1zN0B0.net
Sub テキストから引っ張る()
Dim ファイル名 As String
Dim 行 As Integer
Dim 列 As Integer
Dim 配列() As String
Dim 文字列 As String
ChDir "C:\Users\user\Desktop\マクロ勉強" ' フォルダ指定
ファイル名 = Dir("*.txt")
列 = 2 'テンプレの開始する列の変更
Do While ファイル名 <> ""
Open ファイル名 For Input As #1
For 行 = 2 To 13 ' テキストの引っ張ってくる行を指定
Line Input #1, 文字列
配列 = Split(文字列, vbTab)
Cells(行, 列) = 配列(2)
Next
Close #1
ファイル名 = Dir()
列 = 列 + 1
Loop
End Sub
286:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/13 19:58:56 sGzWGZEv0.net
うお、変数の宣言をあらかじめわかりやすくしてくれて馬鹿な俺を誘導してくれようとする人が!!絶対そんな感じのありがたい人だ!
今から車に乗って帰ったら速攻PC開きます!--!!
287:デフォルトの名無しさん
20/04/13 20:19:57.09 Kp4LtUp30.net
>>281
>>284
まずVBAの入門書を読んで基礎知識を
整理するといい(するみたいだけど)
あと「テキストから引っ張る」っていう言葉が曖昧
「テキストファイルを読み込む」「セルに展開する」
みたいに仕様を適切な言葉で把握しておくだけで
ネットで検索すればすぐサンプルコードが引っかかる
本当はなるべく「f」も「file」とか具体的に
命名した方が分かりやすくていいと思うけど
(ファイル用変数とセルの列を混同した一因だろうし)
まず日本語のレベルで言葉を整理しよう
288:デフォルトの名無しさん
20/04/13 22:05:23.75 sGzWGZEv0.net
>>287
全くその通りです。
とりあえず
ほぼ意味わからないまま上の人達のおかげで自分の今の業務が10倍以上余裕で速くなるであろうマクロボタンをベースになるxlsmのシートに一つ登録したらたった今完成してしまいました…
隣のシートの正式フォームに数値のみコピーするのだけはマクロで追加しました
Sub テキストファイルをベースに読み込む() ChDir "C:\Users\ikuzo\Desktop\測定データ"
'フォルダ指定
FILE = Dir("*.txt")
c = 2
'ベースの開始する列の変更
Do While FILE <> ""
Open FILE For Input As #1 For r = 2 To 13
'セルに展開する行を指定
Line Input #1, s Cells(r, c) = Split(s, vbTab)(5) Next Close #1
FILE = Dir
c = c + 1
Loop
Range("B2:L13").Select Selection.Copy Sheets("測定結果報告書").Select Range("D5:N16").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
End Sub
何度やっても一瞬で完璧に処理が終わる…
だがさっぱり意味がわからん、、
本読みます。。
289:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/13 22:52:20 sGzWGZEv0.net
ああ、ダメだ。'でメモりまくったけど
出力する側のエクセルシートの列の指定はわかったけど行の指定がわからなかった。勉強ですね。。
みなさんありがとうございました。
290:デフォルトの名無しさん
20/04/13 23:09:41.81 nLvmNP810.net
ちらっちらっ
291:デフォルトの名無しさん
20/04/13 23:14:07.84 sGzWGZEv0.net
ごめん、ダメだ。助けてください。
混乱しまくってます。全然違った
読み込むテキスト側の行指定がわからない、、
ベースの方にテキスト2行目8行目からを指示、
とかそれをしないと会社で対応できないです…
292:デフォルトの名無しさん
20/04/13 23:21:22.07 V6BYDDPb0.net
そりゃ変数すら知らない知識レベルならこんな短時間じゃなんもできんだろう…
293:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/13 23:39:16 sGzWGZEv0.net
先輩曰くとりあえずわからなくても1つ何か作ってそっから覚えていけと言われ…
Sub 指定フォルダの全テキスト絞り読み込み() ChDir "C:\Users\user\Desktop\測定機データ" 'フォルダ指定
FILE = Dir("*.txt") retu = 2
'ベース列決定でAは1から
Do While FILE <> ""
Open FILE For Input As #1
For Tekist = 3 To 12
'ベース任意行決めでテキストは1行目から
Line Input #1, s
Cells(Tekist, retu) = Split(s, vbTab)(5)
'テキスト初列を()で決めるがAは0から
Next
Close #1
FILE = Dir retu = retu + 1
'この数だけ列飛ばしにベースに読み込む
Loop
End Sub
'テキストを任意の行から読むのが課題4月13日
毎日勉強しないとなぁ。ほんと
294:デフォルトの名無しさん (ワッチョイ f71f-nfbJ)
20/04/13 23:57:52 k2GojJ+U0.net
PDFファイル(画像)をEXCELに貼り付ける際の画像の素の大きさってどうやって取得できます?
295:デフォルトの名無しさん
20/04/14 00:02:13.22 A2P11e7ma.net
いきなり別ファイル(txtファイル)読み込んだり、配列変数あったりで難しいよ。
本来はもっと基礎からやらないと。
296:デフォルトの名無しさん
20/04/14 00:02:49.64 PthiGcDI0.net
>>293
テキストファイルは1行ずつ順番しか読み込むことができないから、3行目が必要な時は最初の2行を読み飛ばさないといけない
Open FILE For Input As #1
Line Input #1, s ' 1行目を読み込むだけで何も処理をしない
Line Input #1, s ' 2行目以下略
For Tekist = 3 To 12
Line Input #1, s ' 3行目以降
Cells(Tekist, retu) = Split(s, vbTab)(5)
Next
297:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/14 00:29:53 Ua5gdcz00.net
>>296
本当に本当にありがとう、
上の人たちも本当にありがとう
無知のド素人の俺でも超完璧に動かせました
感謝しかないです。本当に勉強します
Sub 指定フォルダの全テキスト絞り読み込み() ChDir "C:\Users\ikuzo\Desktop\測定機"
'フォルダ指定
FILE = Dir("*.txt")
retu = 2 'ベース列を決定でAは1から
Do While FILE <> ""
Open FILE For Input As #1
'Line Input #1, s
' 1行目を読むだけで何もしない(テキスト1行目からで良ければ普段は封印
'Line Input #1, s
' 2行目以下略
For Tekist = 3 To 12
'ベース初行~任意行決めでテキストは1行目からだが封印の解放により連動
Line Input #1, s
Cells(Tekist, retu) = Split(s, vbTab)(5)
'テキスト初列を()で決めるがAは0から
Next
Close #1 FILE = Dir retu = retu + 1
'この数字を変えた分だけ列飛ばしにベースに読み込む
Loop
End Sub
'本当にありがとうございました4月14日
298:デフォルトの名無しさん
20/04/14 16:20:04.61 BhIp9WlU0.net
>>296
Tekist ワロタ
299:デフォルトの名無しさん (スップ Sd02-AglQ)
20/04/14 18:14:44 srMYTcHJd.net
TekisutoでもTextでもTexteでもないのな
300:デフォルトの名無しさん
20/04/14 19:13:19.46 Ua5gdcz00.net
今日、神懸かり的に職場の測定機のPCのツールとして産声を上げました
あとは起動と同時に出るユーザーフォームにボタン4くぐらい作って割り当ててとりあえず完成しそうです
そして今日から本を愛読して変数について基礎から学んできます
自分で変えたのがわかるように誤記ぐらいにしとかないと何かのコマンドやコードがわからないので
textって打ったら先頭が大文字に変わるから
こりゃいかんと
301:デフォルトの名無しさん (ワッチョイ bb7c-slfm)
20/04/14 19:29:23 2/fcFDaL0.net
なんでもいいから一つ作れってのは作ってもらえって意味じゃないと思うな
302:デフォルトの名無しさん (ブーイモ MM5b-L0r9)
20/04/14 19:39:44 5O9c120iM.net
活気が出てええやん
過疎スレやし
303:デフォルトの名無しさん
20/04/14 21:50:12.98 Ua5gdcz00.net
変数の定義や宣言をとにかく最初にする癖をつければ
後でわかりやすいことが本でわかり
そして英字じゃなくてもいいことに驚きました
慣れてるたち人のサイトだと
Dim Folderpass As String
Dim FileInt As Long
とか英字だけど
Dim フォルダ場所 As String
Dim ファイル数 As Long
とか和文字だと支障でますかねこれ
304:デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
20/04/14 21:58:17 A2P11e7ma.net
個人的には変数名で日本語は避けてる。
逆に読みにくいので。
305:デフォルトの名無しさん (ワッチョイ 23da-AglQ)
20/04/14 22:06:22 4z3IdTPt0.net
拙者も日本語はコメントで書くようにしてコードは英数字で書くようにしている
306:デフォルトの名無しさん
20/04/14 22:20:28.98 Ua5gdcz00.net
なるほど、俺も英字で作る癖つけた方が良さそうですかね
字の色でわかるだろ…とは言え、なんかの関数やコマンドと似てるとやはり最初は難しいですね
Tekist
Fname
Fpass
shseeet
とかにしてこれ俺の宣言した変数だわ
って最初は作ってみます
あざす!
307:デフォルトの名無しさん (アウアウエー Sa3a-d4/r)
20/04/14 22:37:22 A2P11e7ma.net
変数の付け方とかで、書いた人の実力が分かるという説もあるから。
私は小文字で始めるキャメル式が見やすいと思って大体統一してる。
308:今度はビルドとはとか言い出すんだろうか? (ドコグロ MMaf-Y19k)
20/04/14 22:38:37 e6NkXt+SM.net
> とか和文字だと支障でますかねこれ
今時C/C++ですら変数名に漢字使えたりするぐらいだから問題ない
特にフォルダーパスをFolderpassとか書くような人は積極的に使うべき
309:デフォルトの名無しさん
20/04/14 22:53:49.36 PthiGcDI0.net
VBAだとそんなに困ることはないんだけど、.netはライブラリが膨大すぎて、既存のメソッドやプロパティと名前が被るかどうかの確認が面倒
あと、語彙力が足りなくてユニークな英単語が思いつかないとか、辞書で調べて付けた変数名があとから見返すと意味がわからないとかある
310:デフォルトの名無しさん
20/04/14 23:05:59.10 wBIN668P0.net
>>309
>語彙力が足りなくてユニークな英単語が思いつかないとか
曜日、曜日って英語でなんて言ったかなー
せや、yb ですましたら
311:デフォルトの名無しさん (ワッチョイ f709-zfCe)
20/04/14 23:20:30 1uq460ot0.net
最近プログラム自体始めた初心者です。
日々勉強ばかりですので、汎用性が高くなるよう目指し、
知識を入れてはコードを改良し、それを外部保存、そして
実行するブックで呼び出して使っています。
ついこないだ引数という便利なものを知り、さっそく使っているのですが、
ひとつ疑問が。
「特定セルに、作成したリストの上から順に内容を書き込む」という
簡単なfor~nextループマクロを使いまわしたいのですが、そのループ処理内容を
callなどから設定することはできるのでしょうか?
(たとえば、あるブックでは印刷処理したい、けどこっちではシートコピー処理したい、
など)
引数で、特定セルやリストの開始行は設定できたのですが。。。
宜しくお願いいたします。
312:デフォルトの名無しさん
20/04/14 23:23:30.52 1uq460ot0.net
>>311です。一部分かりづらかったので訂正いたします。
×「そのループ処理内容をcallなどから設定することは~」
〇「そのループ処理内容を、実行するブックから設定することは~」
313:デフォルトの名無しさん
20/04/14 23:30:42.95 ps8T64zC0.net
馬鹿が一気に出てきたのはコロナウイルスで脳炎や痴呆症でも発症するのか?
314:デフォルトの名無しさん
20/04/14 23:31:29.82 PthiGcDI0.net
>>311
サブルーチンの中にブック名を判定するIfを入れるとか、引数を増やして処理を切り替えるとか、方法はいくつもある
315:デフォルトの名無しさん (ワッチョイ e2b5-G6fV)
20/04/14 23:44:19 Ua5gdcz00.net
Sub データ数の確認()
Dim FoPath As String
Dim Fname As String
Dim Fnum As Long
Dim SetPath As String FoPath = "C:\Users\user\Desktop\測定機"
'フォルダのパスを指定する
Fname = "*.txt" 'ファイル名と拡張子指定 Fnum = 0
'ファイル数を一度0にする
'指定したフォルダパスとファイル名をセット
SetPath = Dir(FoPath & "\" & Fname)
Do While SetPath <> ""
'ファイル名が取得出来なくなるまでループ Fnum = Fnum + 1
SetPath = Dir()
Loop
MsgBox Fnum & "つデータが入っています。"
End Sub
見様見真似というかネットからパクってユーザーフォームのボタンに追加できました。
このスレの人たち凄いです
316:デフォルトの名無しさん (ワッチョイ 068e-f9/D)
20/04/14 23:55:34 ps8T64zC0.net
いい加減に馬鹿は消えろ
317:デフォルトの名無しさん (ラクッペペ MM8f-AKYr)
20/04/15 00:06:27 IBkk3oxvM.net
>>311
他のナウい言語みたいに関数ポインタとか使いたいのだろうが
おとなしくコマンド文字列でも渡してselectでもしとけ
318:デフォルトの名無しさん
20/04/15 01:14:25.80 vPyadW120.net
ナウい変数名を考えようと思って色々試したら、結構いけるじゃん。
Dim ヽ, 卍, ¶, ㍾, ㌶, ㊨, ℡, ≒, ♪
♪ = 1
Debug.Print ♪
319:デフォルトの名無しさん
20/04/15 01:17:01.85 vPyadW120.net
あ、普通にこれでいいか。
Dim 骸骨剣士, 死霊の騎士, 幽霊, 死神
320:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/15 01:24:08 Ikiffowr0.net
For 愛 = 1 To 10
321:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/15 01:34:17 Ikiffowr0.net
>>319
うちの新人が最初に書いてきたコードがそれだったわ (実話
もちろん熟語の意味と変数の用途は無関係で、厨二ワードを思いつきで適当に並べただけ
322:デフォルトの名無しさん (ワッチョイ 57ad-LzhE)
20/04/15 02:43:11 zLal5e060.net
>>311
初心者なら具体的な処理を抽象化していく
ボトムアップのやり方が分かりやすいと思う
たとえばかけ算の九九を求める関数に
引数でXを渡してXxX(12×12など)を
求める関数に抽象化すると使い道が広がる
あるいは5行6列目のセルを処理する関数を
X行Y列目を処理するように拡張するだとか
関数の引数は数学の変数のように考える
そして関数(やクラス)を自作する時のポイントは
なるべく関数を小分けにして組み合わせて使うこと
関数が大きくなると理解するのも難しくなるから
印刷やシートのコピーとか別の処理を
ひとつの関数で全部やろうとしないで
別々の関数に書いておく
それで呼び出し元の関数から
実行する関数をIF文で切り替えたりする
Excel VBAに限らずプログラミングの定石
323:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r)
20/04/15 08:51:03 7yJWhPoQ0.net
個人的な意見だけど
変数を日本語にする事の欠点は、目立ちすぎて、他が見にくくなる事だと思う
ループカウンタの様な頻出する変数には、制御構造が見にくくなるので避けるべき
ルーチンの目的的なものとか、あまり使わないような変数については、場合によっては推奨
324:デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
20/04/15 10:07:54 fYr2Vm730.net
いいたいことはわかる
なでしこみたいに構造もそうなってれば、比較して自然に見えるしね
まあでも英語で慣れちゃってると、気になっちゃうから可読性低いと評価してしまうわ
325:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/15 11:57:43 qO0uVKDC0.net
>>303
絶対に止めた方が良い。
今、他人のそういうコードで四苦八苦してる。
しかもプロシージャも日本語だから
If 測定結果 Then
などとあって、"測定結果"が変数なのかBooleanを返すプロシージャなのかすら直ぐには分からない。
326:デフォルトの名無しさん
20/04/15 12:04:59.54 tJWgJTOGM.net
それはエーゴでもかわらなくなくね?
327:デフォルトの名無しさん
20/04/15 12:43:22.36 9r3ObWq4r.net
>>32
「定義」ですぐわかる
328:デフォルトの名無しさん
20/04/15 12:47:51.20 9r3ObWq4r.net
325の間違い
329:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/15 13:14:16 Ikiffowr0.net
がっつり英語だと、こんどは辞書を引く作業が待ってることもある
発音がわからないと会話で困るし
330:デフォルトの名無しさん (ワッチョイ 778f-Eg7/)
20/04/15 13:39:00 zDLD/Qb60.net
特定のURLのソースに任意の文字列が記載されているかどうかを判断したい。
URLリンク(auctions.yahoo.co.jp)
URLリンク(auctions.yahoo.co.jp)
URLリンク(auctions.yahoo.co.jp)
というページのリストがあったとして、ソースに"停止中"もしくは"無効"の文字列が
あるURLにはB列に"NG"と吐き出す、ということをやりたいです。
URLリンク(okwave.jp)
が近いんですが「2)一般的な文字列の場合」はエラーが出て動きませんでした。
VBAに詳しい人、よろしくお願いします。
331:デフォルトの名無しさん (アウアウエー Sadf-Ho7r)
20/04/15 13:51:28 5mkkxmmPa.net
grep なら一行でできるのに VBA でやらないといけないのか
332:デフォルトの名無しさん (ワッチョイ bff7-pwY/)
20/04/15 13:53:51 VtNtlccy0.net
人に送ったら日本語フォントない海外PCで全く動かなくなったりしたな
333:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/15 14:13:32 Ikiffowr0.net
>>330
参考リンク先のどのプログラムを試して、どの行でどんなエラーが出たか書いて
エラーが出たままでCtrl+Cを押せば、エラーメッセージがクリップボードに入るから、それをコピペして
あと、目的のWEBサイトの文字コードはちゃんと確認した?
334:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/15 14:16:13 Ikiffowr0.net
>>331
まあ wget | nkf | grep のが簡単かもね
335:330 (ワッチョイ 778f-o1R8)
20/04/15 14:42:43 zDLD/Qb60.net
>>333
すいません。
コピペ繰り返してたらなんとか行けました。
Sub YouTube_Search()
Dim objIE As Object
Dim i As Long
Dim j As Long
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
For i = 1 To Range("A1").End(xlDown).Row
.navigate Cells(i, 1).Value
While .Busy Or .ReadyState <> 4: DoEvents: Wend
For j = 1 To .document.all.Length
If InStr(.document.all(j - 1).outerText, "Yahoo! JAPAN IDが無効です") > 0 Then
Cells(i, 2).Value = "*"
Exit For
End If
Next
Next
End With
objIE.Quit
Set objIE = Nothing
End Sub
336:デフォルトの名無しさん (スップ Sdbf-N0vN)
20/04/15 14:43:10 dyZQaRRHd.net
>>326
確かに。
でも日本語フィールドが多いSQL文の中で、一部の変数も日本語だったりするのとか、変数と気付かなかったりするのもあるし、最悪だよ。
337:デフォルトの名無しさん (アウアウウー Sa1b-4fgg)
20/04/15 15:14:20 4idtb0t/a.net
かわらなくね?かわらなくなくね?
338:デフォルトの名無しさん (ドコグロ MMbf-A2g6)
20/04/15 19:27:28 DRi90/CyM.net
>>325
なんの測定なのか知らんけど測定結果がBooleanな時点で知能の足らない職場と言うことがわかる
コードレビューなんてしたこと無いだろ
339:デフォルトの名無しさん
20/04/15 21:47:05.33 vXo73Hp80.net
辞書で調べても馴染みのない単語でかえってわかりにくくて結局日本語にしてみたりね
340:デフォルトの名無しさん
20/04/15 22:13:27.05 qXjFLib20.net
311です。
>>314,317,322
私がやろうとしていたことが、まず効率の悪いことだったんですね・・・
細かく分けて関数作って、それを組み合わせて作る方法を取りたいと思います。
(ただ、どこまで細かく分ければいいのか、まだ要領を掴んでおりませんが)
ありがとうございました。
341:デフォルトの名無しさん (ブーイモ MMcf-IW4T)
20/04/15 22:29:20 bRq9+Y6qM.net
初心者ですがご教授下さい
サンプルの工程能力で1個につき6項目の測定値をソフトがエクセルにデータ出力してくれるけど、日によっては23個だったり25個だったりしか測定できず
残りの記入方法は人によって様々で
ある人は測定値のバラつきに近い値をテンキーで手打ち
ある人はエクセルのrandbetween関数で
各項目の測定値のMAXとMINで乱数だしてそれをコピぺ
サンプル1 サンプル2 ~サンプル30
項目1
項目2
項目3
項目4
項目5
項目6
こんな並びで全項目測定後に出力されるから項目の途中で止まることはないです
「サンプル1~30の間の項目1の行に空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
これは難易度かなり高いですか?
342:デフォルトの名無しさん (ブーイモ MMcf-IW4T)
20/04/15 22:33:03 bRq9+Y6qM.net
誤記というか間違えました
「サンプル1~30の間の項目1の列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
です
すみませんがどういったアプローチがあるのか
そもそもできるのかご教授下さい
343:デフォルトの名無しさん (アウアウエー Sadf-fVbL)
20/04/15 22:49:03 xz8oNroja.net
>>342
それは多分難しくないと思うけど、読解力がなくてよく分からない。
サンプル的なものを挙げてもらえると分かりやすいかも。
344:322
20/04/15 23:00:46.12 zLal5e060.net
>>340
>どこまで細かく分ければいいのか
基本的に処理は関数名に沿って分ける
関数名から逸脱した処理があれば
別の関数に分けて整理していく
だから関数や変数の
適切な命名が重要になってくる
面倒でも名前と処理を対応させた方が
後でメンテナンスしやすくなる
345:デフォルトの名無しさん
20/04/15 23:19:56.30 bRq9+Y6qM.net
>>343
いや、俺の説明力がなくて、、
というか行列が逆でした
再度説明させてください
URLリンク(i.imgur.com)
こんな感じで機械がエクセルに出力してくれるけど
残りのサンプルの数字は上の測定値を見てみんなそれぞれランダムにテンキーで入力したりと、いわゆる数値を適当にバラして打ち込んでます。(偽装というほど重要ではないので)
日によって測定できるサンプルが数が違います。
参考になるか程度のスクショになりますが
「サンプル1から30までで空白の行列があったらそれまで測った上のサンプルの測定値を元に乱数でサンプル30の項目6までVBAが全て記入してくれないかなと、
こんな感じです
346:デフォルトの名無しさん
20/04/15 23:34:48.80 xz8oNroja.net
「列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に」というのは?
その例でいうと、
・項目1のサンプル8、9、10が空欄なので、1から7の数値を元にして適当な数値で埋める。
・残りの項目についても同様
ということですか?つまり上の数値を元にしてるけど。
処理自体は難しくないとは思います。
347:デフォルトの名無しさん
20/04/15 23:57:01.64 bRq9+Y6qM.net
>>346
その例でいうと、というか今の職場の手間になってる仕事がまさにその通りです
上の数値を元に残りの項目を誰かが埋めてます
どんなアプローチで行ったらよさそうかアドバイスいただませんか
Rnd関数Int関数、Loop、Offset
調べてもなかなかわからずです‥
348:デフォルトの名無しさん
20/04/15 23:58:14.63 Ikiffowr0.net
>>345
数字を偽装するルールが人によって違うのはわかったけど、あなたはどういうルールでやりたいのか、もうちょっと厳密に書いて
「それまでの数値を参考に」という表現では曖昧すぎてプログラミングできない
例として、サンプルが7個しかなかった場合は、その7個の数字をどう使って30個に増やすのか?
349:デフォルトの名無しさん
20/04/16 00:23:27.26 WB3hiXkKM.net
>>348
数式と一覧を削りましたが普段はここの赤矢印に測定したデータのMax値とMin値を入れて
EXCELの関数でこのような数式で乱数を
出しています
数年前に自力で作ったけどもはや覚えていないレベルです
URLリンク(i.imgur.com)
350:デフォルトの名無しさん (ブーイモ MMcf-IW4T)
20/04/16 00:25:05 WB3hiXkKM.net
あとスクショ取りたいが故に行数の抜けやズレが、、、すみません
351:デフォルトの名無しさん (ワッチョイ 9f85-i57j)
20/04/16 00:30:19 eKixqxFQ0.net
最低値+rnd×最大最低の差で乱数になるよ
352:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/16 00:35:38 YY8HOOMA0.net
とりあえず行と列の位置は>>345の画像に合わせて作ったから、あとは適当に修正して
Sub Macro1()
For 項目 = 1 To 6
列 = 項目 + 2
最小 = Application.WorksheetFunction.Min(Cells(6, 列).Resize(30)) * 1000
最大 = Application.WorksheetFunction.Max(Cells(6, 列).Resize(30)) * 1000
For サンプル = 1 To 30
行 = サンプル + 5
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Application.WorksheetFunction.RandBetween(最小, 最大) / 1000
End If
Next
Next
End Sub
353:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/16 00:52:18 YY8HOOMA0.net
>>351の方法を取り入れてみた
Sub Macro1()
For 項目 = 1 To 6
列 = 項目 + 2
最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
幅 = 最大 - 最小
For サンプル = 1 To 30
行 = サンプル + 5
If Cells(行, 列) = "" Then
Cells(行, 列).NumberFormatLocal = "0.000"
Cells(行, 列) = Rnd() * 幅 + 最小
End If
Next
Next
End Sub
354:デフォルトの名無しさん (ブーイモ MMcf-IW4T)
20/04/16 01:25:57 ltLJf2qHM.net
>>353
神様過ぎびっくりです。
セルをクリックすると.0754322457888とか小数点が残ってるのですがこれを
EXCELのROUND関数みたいに四捨五入した状態でここに出力するようにできますか?
四捨五入で0.000の桁で出力できたらもう
職場の2人が失職してしまうレベルです
355:デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
20/04/16 01:33:01 5emHbHZx0.net
それくらい調べたんかな
356:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/16 01:41:31 YY8HOOMA0.net
>>354
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)
実際、ごく簡単なマクロで仕事を効率化したおかげで毎年たくさんの失業者が出てるからほどほどにな
経営側でなければ、サビ残がなくなるぐらいのところでやめとけよ
357:デフォルトの名無しさん
20/04/16 01:59:01.29 dFCopLc9M.net
>>356
神様ありがとう。涙出てきました。
358:デフォルトの名無しさん
20/04/16 02:43:35.11 Kf4avcM70.net
>>357
またこの間の馬鹿か
359:デフォルトの名無しさん
20/04/16 03:23:43.55 KenjGRyod.net
無意味なデータ入力に数百万の人件費を払う会社か
すげーな
マクロで解決するより、その作業をなくす方法を真剣に考えた方がいいんじゃないか?
360:デフォルトの名無しさん
20/04/16 08:08:02.24 IIRVmVIhr.net
コード教えて君もいるし、PC博士気取れるから教えちゃうやつもいる
361:デフォルトの名無しさん
20/04/16 08:16:07.12 Br0d9N6Q0.net
一時しのぎにはなっても長い目で見れば迷惑にしかならない
362:デフォルトの名無しさん
20/04/16 10:34:35.59 HIOPYfc5a.net
自力でマクロも書けんやつが作ったマクロで会社の経理やるなんてブラック企業しかない
363:デフォルトの名無しさん (スフッ Sdbf-xa8R)
20/04/16 11:54:49 wE+PDO4Yd.net
4月は零細の新入社員が単純作業をマクロでどうにかしようとがんばる時期
364:デフォルトの名無しさん (ワッチョイ 7749-DNPS)
20/04/16 11:56:31 RK65w6zF0.net
そして保守できずに五月病で辞める
365:デフォルトの名無しさん
20/04/16 12:13:47.85 6vJJDJtDM.net
>>363
もともと99%はブラックだし
会社の規模とか無関係に
366:デフォルトの名無しさん
20/04/16 12:29:59.97 mPB4Kayur.net
初歩的な質問なんですけど、ロック付きのブックを編集してSaveAsやcloseで保存したときにロックなしのブックにしたいんですが、どうやればできますか?
367:270 (ワントンキン MMcf-4RW9)
20/04/16 12:54:20 cYWHpILcM.net
>>366
イベントプロシージャにロックを外す処理を書けばいい
368:デフォルトの名無しさん (アウアウウー Sa1b-4fgg)
20/04/16 13:43:07 pZjivNa8a.net
ロックかけた人に外してもらう
369:デフォルトの名無しさん (アウアウウー Sa1b-4fgg)
20/04/16 13:47:25 pZjivNa8a.net
俺に会社の経理やらせてくれたら自分の口座に自動で入金する処理入れるよ
370:デフォルトの名無しさん
20/04/16 14:50:28.74 xWZcVh5Wa.net
画像フォルダのファイル名を取得→ファイル名と同じ文字列の入ったセルに画像を挿入→画像をセルのサイズに合わせるというサンプルコードを見つけたのですが
画像フォルダ内にファイル1~5まであり、エクセル内にファイル1の文字列がない場合、「オブジェクト変数またはwithブロック変数が設定されていません。」のエラーが出ます
おそらくIFでその場合の処理を設定すればよいのではと思うのですが、変数の設定の仕方が分からないです
昨日今日始めたネット聞きかじりの知識で申し訳ございませんがアドバイス頂けないでしょうか
371:デフォルトの名無しさん
20/04/16 15:01:25.35 YY8HOOMA0.net
>>370
まずはうまく動かないコードをここに書いて
372:デフォルトの名無しさん
20/04/16 15:08:48.79 RK65w6zF0.net
こらはまたコード出してくれるの待ってるクレクレ君
373:デフォルトの名無しさん
20/04/16 15:11:15.02 xWZcVh5Wa.net
>>371
ネット丸パクリのコードだけど
Sub sample04()
Dim objShape As Object
Dim strPath As String, strFileName As String
Dim strImgName As String
strPath = "c:¥temp¥"
strFileName = Dir(strPath & "*.jpg")
Do Until Len(strFileName) = 0
strImgName = Left(strFileName, Len(strFileName) - 4)
Cells.Find(What:=strImgName).Activate
ActiveCell.Offset(0, 1).Activate
Set objShape = ActiveSheet.Shapes.AddPicture( _
Filename:=strPath & strFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height)
strFileName = Dir()
Loop
End Sub
374:デフォルトの名無しさん
20/04/16 15:12:43.83 xWZcVh5Wa.net
最終的には画像1-4はシート1、5はシート2みたいな感じに貼りたいんだがとりあえず画像1の文字列ないとエラー起こすのを直したいです
375:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r)
20/04/16 16:37:22 V7jYJHWg0.net
どこでエラーが起きてると思う?
検索して見つからなかったセルに対して何かをしようとしたから、何に対してやるんだよーってエラーが起きたんだよ
コードを見ると、Findメソッドの戻り値に対して直接Activateしてるから、そこをばらす必要があるので、一旦戻り値を変数に受けるといい
セルはRangeオブジェクトで、 Findメソッドは通常、Rangeオブジェクトを返す
オブジェクトを変数に代入する場合は、 Set をつける
見つからなかった場合はFindメソッドはNothing を返す
オブジェクトの比較には、Is を使う 例: If Not(r is Nothing) Then ~
あとはがんばれ
376:デフォルトの名無しさん (ワッチョイ ff8e-eUuY)
20/04/16 17:37:30 Kf4avcM70.net
馬鹿がコピペで作ったものは使い物にならない
377:デフォルトの名無しさん (オッペケ Sr8b-LtOn)
20/04/16 18:14:58 mPB4Kayur.net
>>367
ありがとうございます。やってみます
378:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/16 18:19:31 YY8HOOMA0.net
Sub sample04()
Dim objShape As Object
Dim strPath As String
Dim strFileName As String
Dim strImgName As String
Dim rngStatus As Object
strPath = "c:\temp\"
strFileName = Dir(strPath & "*.jpg")
Do Until strFileName = ""
strImgName = Left(strFileName, Len(strFileName) - 4)
Set rngStatus = Cells.Find(What:=strImgName)
If Not (rngStatus Is Nothing) Then
rngStatus.Offset(0, 1).Activate
Set objShape = ActiveSheet.Shapes.AddPicture( _
Filename:=strPath & strFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height)
End If
strFileName = Dir()
Loop
End Sub
379:デフォルトの名無しさん
20/04/16 18:52:45.98 Cbge2SK50.net
>>369
自動なのにトロイ処理とはこれいかに!
380:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r)
20/04/16 19:18:26 np7lPiVv0.net
>>342
「それより前(左)にある全ての測定値を参考に」が仕様としては曖昧模糊としてる気がする。
381:デフォルトの名無しさん (ワッチョイ 77da-o3Ob)
20/04/16 19:21:15 XXRRqnVg0.net
>>375
>>378
ありがとうございます、動かしながら理解していこうと思います
382:デフォルトの名無しさん
20/04/16 20:15:43.63 /BsiXYGwd.net
>>338
知らねーよ。
10年以上前の、他社から引き継いだ、正直全部書き直したいけど今動いてるからそっとしておいてるコードだよ。
383:デフォルトの名無しさん (ワッチョイ 9f01-h94e)
20/04/16 21:03:51 l2cOjNdn0.net
指摘されたら他社とか言い出してて笑うわ
384:デフォルトの名無しさん
20/04/16 21:21:39.75 Gr+82O4W0.net
>>381
理解もできない代物を知らない誰かの作ったコードで動かそうという馬鹿
385:デフォルトの名無しさん
20/04/16 22:03:58.10 5vefqm3N0.net
理解してないコードを使う無能に仕事やらせるとかやっぱブラックだったか
386:デフォルトの名無しさん (ワッチョイ ffe6-ycCE)
20/04/16 23:38:37 NQ0wsZwj0.net
そもそもexcelVBAって素人が頑張って自動化してみましたってのが99%なんだから
そういうのをメンテしなきゃならない羽目になったって話だろ
プログラム板の中では異質なスレなんだと思う
コードレビューとか言ってるやつは確実にアスペ、そういう事情が想像出来る脳みそが生まれつき備わってない
相手するだけ無駄
387:デフォルトの名無しさん (ワッチョイ d7ac-DNPS)
20/04/17 00:46:06 TM3fWeSx0.net
他の誰かがってのは全部言い訳
仕事してメンテするなら自分自身が目の前の有りものを完全理解しないといけない
事情は関係ない
仕事としてやる以上自分の責任として取り組むべき
それを怠って開き直るのは無責任であり無能でありいつまでも何も成せない
趣味ならしらん
388:デフォルトの名無しさん (ワッチョイ 77da-Uqc8)
20/04/17 01:58:25 d5pl8NtJ0.net
>>386
素人がつくろうが会社で使うんだろう
389:デフォルトの名無しさん
20/04/17 05:06:04.15 K8Kq74SuM.net
>>386
> 今、他人のそういうコードで四苦八苦してる。
↓
> 今動いてるからそっとしておいてるコードだよ。
言うことコロコロ変わりすぎw
390:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb)
20/04/17 17:04:26 hqq8FpSv0.net
散々ここで聞きまくって不快な思いをさせた物ですが完全に職場での運用に成功しました。
本当にみなさんのおかげというか頭良すぎですねここの人は…
フォルダ内にあるtxt全ての任意の列行を片っ端からエクセルにコピーする
空白の部分は乱数で処理
この辺は無知にとってはえげつないです。
提案で出そうと思ったらもっと大きな発表テーマで使うぞと言われました。
100のワークの測定データを作るのに2日かかってたのが5分でテンプレートに出力完了…
391:デフォルトの名無しさん (ワントンキン MM7f-tZ20)
20/04/17 18:42:59 35vznKDBM.net
>>390
馬鹿は死ねよ
392:デフォルトの名無しさん (ワッチョイ b7e6-R0o5)
20/04/17 18:48:40 M4VM/pj30.net
せっかくtxtという利用しやすいデータ形式なのに
わざわざxlsなんかにしちゃって
トドメとばかりにゴミデータをインプラント
面白い人だな
393:デフォルトの名無しさん
20/04/17 19:49:43.28 d0l4uzMSd.net
>>383
実際そうだし、というか、そんなの多いぞ。
394:デフォルトの名無しさん (スプッッ Sdbf-N0vN)
20/04/17 19:52:36 d0l4uzMSd.net
>>386
素人じゃないと思うよ。
形の上では。
お客は自ら作るという会社では無い。
作ったのは請け負っている会社だよ。
コメントに会社名らしきものが書かれてるし。
395:デフォルトの名無しさん (スプッッ Sdbf-N0vN)
20/04/17 19:58:42 d0l4uzMSd.net
>>389
あのね、客の要望は有るんだよ。
要望に答えるためには、今動いてるものも解析しないと答えられるわけが無い。
そのコ一ドが何やってるかわからずに機能追加なんてできるわけが無い。
というか、こんなのVBAに限らず開発やってる会社なら何処でもある話だけどな。
ここには開発専門で仕事したことのある奴が少ないということか。
396:デフォルトの名無しさん
20/04/17 20:10:16.78 SpmVGRc5M.net
他社が作ったコードを客の要望で機能追加
しかもVBA
そんなズタボロの状態で開発専門とか大丈夫かよw
397:デフォルトの名無しさん
20/04/17 20:49:15.97 d5pl8NtJ0.net
>>394
その会社名らしきところに使用料とか払った?
それともその会社に無断で会社名入りのファイル使ってるの?
398:デフォルトの名無しさん (ワッチョイ d7e5-sLxe)
20/04/17 21:12:50 zPgoaBKN0.net
自分で書いたコードでも嫌です
399:デフォルトの名無しさん
20/04/17 21:26:37.34 d0l4uzMSd.net
>>396
今まで幾つかの開発会社で働いたが、どこでもある話。
VBAにも限らない。
まあ、日本語変数とか日本語関数はVBA以外では聞いたこと無いけどな。
前のコードが酷いので、書き直したらもっと酷くなったなんて、某SE本にも書いてあった。
400:デフォルトの名無しさん
20/04/17 21:28:25.17 d0l4uzMSd.net
>>397
プログラムは客のもんなので、そんな話にゃならねーよ。
普通はそうなる。
客のもんになってない例もあるかもしれんが見たこと無い。
401:デフォルトの名無しさん (スプッッ Sdbf-N0vN)
20/04/17 21:30:17 d0l4uzMSd.net
>>397
これ、VBAの話ね。
コンパイルする言語の場合はそうでない例があったな。
402:デフォルトの名無しさん (ドコグロ MMeb-h94e)
20/04/17 21:52:47 z6C6Zgo5M.net
>>400
> プログラムは客のもんなので
↑
> 他社から引き継いだ
ボロ出し過ぎw
403:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r)
20/04/17 22:02:00 yYE4gKbd0.net
いい加減、他人の宿題とか仕事とかに安易に回答与えるのやめたほうが
いいんじゃないかと。
404:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/17 22:44:22 j6CUwBsl0.net
大手から零細まで、色々なところで仕事してきたけど、会社によっては日本語の関数とか変数は別に珍しくなかったな
405:デフォルトの名無しさん (アウアウエー Sadf-Ho7r)
20/04/17 23:04:41 tPgd0P7Wa.net
現実問題として、VBAで複雑なマクロを書くと重くて動かないと思うんだけどな
それでも我慢して使っているのかな?
406:デフォルトの名無しさん (ワッチョイ ffda-Ho7r)
20/04/18 08:44:33 FzSpO5p/0.net
Excelでポリゴンゲー作るとか、
相当極端なことをしない限り大丈夫。
407:デフォルトの名無しさん
20/04/18 09:44:05.01 QhOAvRvA0.net
複雑な処理だからって重くなることはないだろ
重い処理をするから重くなるのであって
408:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 12:59:54 DE4BsnuO0.net
>>402
お前、事務員だろ。
自分のボロに気付いて無いw
開発会社で働いたことある奴ならすぐわかる。
409:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 13:06:18 DE4BsnuO0.net
>>405
スキルの低い奴はそうなる。
もちろんVBAは遅いけど、VBAで実施するようなことで、どうしても遅くなると想定されるような処理は殆ど無い。
VBAで実施するようなことじゃなければ別だが、そういう話はあまりない。
410:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 13:08:05 DE4BsnuO0.net
>>404
話には聞いたことがあるが、自分が目の当たりにしたのは今回が初めてだ。
411:デフォルトの名無しさん
20/04/18 13:16:31.33 XwSVwu50d.net
関数名だけ日本語ってルールにしてるところは見たことがある
意外と見づらくなかった
412:デフォルトの名無しさん (ドコグロ MMbf-h94e)
20/04/18 13:29:04 bylan2xBM.net
>>408
> 開発会社で働いたことある奴ならすぐわかる。
なら詳しく説明してみなよ
客のものを勝手に引き継ぐとか犯罪だぞw
413:デフォルトの名無しさん (ドコグロ MMdf-h94e)
20/04/18 13:33:12 jvR0dANmM.net
>>411
まあ、読むのは慣れだと思う
慣れればそんなに苦じゃないし意味不明な英訳調の関数名や変数名よりマシ
ただ入力がかなり面倒
414:デフォルトの名無しさん
20/04/18 13:38:19.65 DE4BsnuO0.net
>>412
???
日本語が理解出来ない人?
客が依頼していた開発会社を変えただけのことだろ。
10年前依頼されてた開発会社のコメントがソースにあったが、プログラムは客のもんだ。
今、依頼されてるうちの会社がどうして10年前に依頼されてた会社の了解を取る必要がある?
415:デフォルトの名無しさん
20/04/18 13:43:26.52 DE4BsnuO0.net
>>412
というかね、こんなの普通によくあることだぞ。
別会社のコメントなんて何度も見たことある。
開発会社で働いたことあれば、そんな所に違和感なんて感じないだろ。
416:デフォルトの名無しさん
20/04/18 13:53:22.59 oUZZgMAe0.net
ソースコードの著作権をどっちがもつかは契約によるぞ
著作権をシステム会社側がもってるのに違う会社に開示したらそれは違法行為
知らずにやってるってのは昔はよく聞いた
10年前に依頼されてた会社の了解を取る必要はないが
普通はソース開示受けるなら開示元に著作権の確認はする
417:デフォルトの名無しさん
20/04/18 14:00:07.44 DE4BsnuO0.net
>>416
そんなの常識だろ。
だが、そこまで分かってるなら結論も容易に想定出来ると思うんだが。
VBAの開発ではExcelならブックそのものにソースが付いてくるし、実質派遣のような形態も多い。
つまり、契約上客のもんになってると想定するのが普通。
418:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 14:01:39 DE4BsnuO0.net
ここで言ってる想定ってお前のことだからな。
そんな想定も出来ずにいちゃもん付ける奴に言ってる。
419:デフォルトの名無しさん (ドコグロ MMdf-h94e)
20/04/18 14:04:14 p9WER9c7M.net
>>414-415
> 客が依頼していた開発会社を変えただけのことだろ。
それ引き継ぐなんて言わんだろ
お前の会社から見たら単に客から改修を依頼されただけ
元のソースを別会社が作ってたか客が作ってたかなんて関係ないし
> 日本語が理解出来ない人?
お前の日本語がおかしいだけ
まあどんどん辻褄合わなくなってるだけとも言うがw
420:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 14:05:27 DE4BsnuO0.net
>>419
???
言うだろw
日本語を理解出来なかった言い訳が見苦しいw
421:デフォルトの名無しさん (ワッチョイ bf2f-8Jcx)
20/04/18 15:07:20 oUZZgMAe0.net
>>419
日本語がおかしいというより、自分の脳内理解が共通認識だって信じて疑わない人だったようだぞ
かまった俺も悪かったが、俺は今後スルーするからお前もそうしろ
422:デフォルトの名無しさん (ワッチョイ d7ac-RTks)
20/04/18 15:20:13 mWjkYk7T0.net
スレ違いになってきてるとは思うが。
最初のほうの386には
「そもそもexcelVBAって素人が頑張って自動化してみましたってのが99%なんだから
そういうのをメンテしなきゃならない羽目になったって話だろ」
って書いてあって、
ここ数レスはプログラム(開発資産)として引き継いだ中のVBAソースコードに焦点が当たってるように見える
まず引き受けた方がプロ(仕事としてVBAをやる)として、
前者ならドキュメントとかなくても(時間さえあれば)改修も簡単だろう。
後者ならドキュメント残してないやつ、もしくはそれを知らずにスキルもなく引き受けたやつが悪い。
まあこんな、前提とゴールをあやふやにして不毛で幼稚な言い合いをしたいなら別にスレを立ててろ
423:デフォルトの名無しさん
20/04/18 15:25:44.82 R5ze2oyiM.net
>>420
> 言うだろw
言うのはお前だけなw
>>421
知ったかが盛って語ったら引っ込みつかなくなったパターンだと思う
424:デフォルトの名無しさん
20/04/18 15:45:18.98 DE4BsnuO0.net
>>422
開発やったこと無い奴だから簡単等と言えるw
確かにドキュメントは無いが、あっても他人のコード読むのは大変だぞ。
425:デフォルトの名無しさん
20/04/18 15:47:00.47 DE4BsnuO0.net
>>423
引き継ぎって言葉分かってる?
それに、想像力があれば一番最初の段階で想定できるような話なんだがw
426:デフォルトの名無しさん
20/04/18 15:51:30.21 DE4BsnuO0.net
引き継ぎ 開発でクグったら最初の3つとも他社からの引き継ぎのことが書いてあったわw
開発会社じゃ当たり前のことなんだけどなw
427:デフォルトの名無しさん (ドコグロ MM5b-h94e)
20/04/18 15:56:09 MLXwdj/hM.net
でもググったURL
428:デフォルトの名無しさん (ドコグロ MM5b-h94e)
20/04/18 15:56:30 MLXwdj/hM.net
は出せないw
429:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 15:59:10 DE4BsnuO0.net
>>422
ああ、素人のコードを引き継いだとしたらの話か。
まあ、素人の短い簡単なコードならその通りだな。
まあ、>>394に書いた通り、形の上では開発会社らしき所のコードだし、コード量も多いからねえ。
VBAはそういうの多いんだよ。
形では仕事で受けてても素人のコードとか。
430:デフォルトの名無しさん
20/04/18 16:01:12.79 DE4BsnuO0.net
>>427
出しても構わんがw
マナー的に出してないだけでw
というか、お前もググって見てから言えよ。
事務員の上にググることさえ出来ないのかよw
431:デフォルトの名無しさん
20/04/18 16:21:35.89 N9jsIxO7M.net
出しても構わんけど出せない
うんうん、そうだろねw
432:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 16:40:22 DE4BsnuO0.net
>>431
ググれないバカに出してやろうwww
システムの保守ベンダー変更による引き継ぎ
URLリンク(www.lanscope.jp)
他社開発システム・アプリケーション保守引継ぎ
URLリンク(www.stylez.co.jp)
他社が開発したシステムを引き継ぎます
URLリンク(www.tpc.jp)
他社が開発したシステムも開発を引き継ぎ保守します。
URLリンク(kusanagi.dht-jpn.co.jp)
他会社が受託開発したPHPのWEBシステムを引き継ぎ運用し、その後の改修対応などを行うことがあります。
URLリンク(qiita.com)
そのWebサイト・システムの保守引き継ぎます。
URLリンク(www.accent.co.jp)
433:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 16:46:17 DE4BsnuO0.net
>>423
な、お前のような素人だけだよw
客が依頼してた会社を変えて、引き受けたのを引き継ぎとは言わないのはwww
434:デフォルトの名無しさん (ドコグロ MMdf-h94e)
20/04/18 17:45:11 JSVuvQDyM.net
必死にググったのは褒めてやるよw
でも、それ運用とか保守の話だろ
そりゃそう言うのは連続してるから引き継ぎって言うだろうけど、10年前の他社のコードの改修を引き継ぎとは言わんわな
435:デフォルトの名無しさん
20/04/18 17:51:35.98 HTrBhqa/0.net
微妙にニュアンスがずれてる気がするけど
わざと?
436:デフォルトの名無しさん (ワッチョイ 1702-nex3)
20/04/18 19:45:41 SSjF6x8Y0.net
他でやれ
437:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/18 22:46:28 DE4BsnuO0.net
>>434
必死?
一発で出たぞwww
またボロが出る。
開発は作って終わりだと思っているのか?
普通は保守へと継続していくもんなんだが。
何も知らんのなw
438:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r)
20/04/18 22:51:16 Yw55XdRL0.net
>>410
ブラック・ショールズ式ってのが金融の世界にあるんだが、これをググって
初めて日本語の変数見て目が点になったw
439:デフォルトの名無しさん (ワッチョイ 5701-7wDT)
20/04/19 05:44:09 wxLF5u+B0.net
質問していいのか?
グラフの近似式をセルにコピペするマクロだ。
440:デフォルトの名無しさん
20/04/19 06:21:55.35 fnnke5O7M.net
あらら、他社のコードの保守まで受託してるって話にするの?
そういうケースだと普通はドキュメントも貰ってるはずだけどろくなドキュメントがないって話かな
そんなハイリスキーな受託して>>325みたいな愚痴こぼしてるなら知能の足りない会社と言われてもしょうがないじゃん
まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す
でないと保守できないから
>>437は保守が何をするのかすらわかってなさそうw
441:デフォルトの名無しさん
20/04/19 06:29:22.92 NooYP4/SM.net
>>439
コピペは難しい、普通にセルに直接ぶち込め
って書かれてるぞ
URLリンク(detail.chiebukuro.yahoo.co.jp)
442:デフォルトの名無しさん
20/04/19 08:34:09.85 /XkpxjBrr.net
近似式をテキストとしてセルに貼るとこまでできたが、そのテキストから係数を得る方法はないですか
443:デフォルトの名無しさん
20/04/19 08:38:32.44 /XkpxjBrr.net
近似式をセルに落とし、計算する作業が大量のあるためです
444:デフォルトの名無しさん
20/04/19 09:19:45.38 BXvk/jUs0.net
>>440
プw
引き継ぎって知らんの?
いい加減、恥を晒すだけだぞw
というか、VBA案件だけの話だと思ってる?
爆笑もんだw
1つの客から1つの案件だけのわけね―だろ。
寧ろVBAの開発はメインじゃね―ぞ。
DBにAccessなんて普通は無いんだ。
バックエンドとか知らんの?
445:デフォルトの名無しさん
20/04/19 09:25:23.89 BXvk/jUs0.net
>>440
あと、知らんのだろうけど、ドキュメント類についてはVBAの場合はそうならないことが多いんだよ。
今までいろんな案件で仕事したがドキュメント貰ったことなんて記憶に無いくらいだ。
で、ドキュメント作る時間も無いことも多い。
これはVBA案件の特殊性だろうな。
VBAが言語として糞呼ばわりされる原因の1つだろう。
446:デフォルトの名無しさん
20/04/19 09:40:28.30 VbzAXKcO0.net
もうウザイから消えろ
447:デフォルトの名無しさん
20/04/19 09:44:05.10 wN5KW3ZOM.net
>>446
無理にこのスレに居なくてもいいんですよ
448:デフォルトの名無しさん (ワッチョイ 1701-ycCE)
20/04/19 10:45:28 Shwu+G580.net
>>442
近似式a x + bからa とか bを切り出すってこと?
VBA使わずともエクセル関数で出来るでしょ
RIGHT、LEFT、MIDとか駆使しろ
449:デフォルトの名無しさん (ドコグロ MMbf-h94e)
20/04/19 10:51:03 ARSXQ48qM.net
>>444-445
今度はAccessガーとか言い出したのか
まあ言い出すのがAccess止まりなのが物悲しいけどねw
ドキュメントも作らずに何を保守するつもりなんだよ
言われたらその場であたふた調べてやっつけ仕事でテキトーに改修するのか?
そう言うクズ会社なのはよくわかったよ
450:デフォルトの名無しさん (アウアウエー Sadf-tHNm)
20/04/19 11:52:18 olPCwpAZa.net
自宅待機でストレス溜まってんだろなー
451:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/19 12:04:09 BXvk/jUs0.net
>>449
バーカw
今度はじゃね―よw
ある特定の案件だけと考えるバカに教えてやってるだけ。
客からの要望はたくさんある。
VBAなんてたくさんある中のごく一部なのがむしろ普通。
ドキュメント作らずってw
それは最初に受けた会社に言えよwww
現実を知らないニートにゃ分からないんだろうなw
452:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/19 12:05:45 BXvk/jUs0.net
日本語が通じないんだよな。
ドキュメント残してないのがコッチにされてる。
453:デフォルトの名無しさん (ワッチョイ 1791-N0vN)
20/04/19 12:08:31 BXvk/jUs0.net
トヨタ並に名前が知られた客から提示されたのがプログラム本体だけで、それ以外何もありませんってことだって有るんだけどな。
結構昔の話だが。
454:デフォルトの名無しさん (ドコグロ MMeb-h94e)
20/04/19 12:19:58 FGXaOjnDM.net
連投バカは日本語が理解できないらしい…
まあ無職の脳内妄想の限界かなw
> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す
455:デフォルトの名無しさん (ワッチョイ 1701-xa8R)
20/04/19 22:09:40 5r3nTnp70.net
長文質問失礼いたします。
VBAを用いたAsc?コード129~159、224~252範囲の文字変換が上手くいきません。
環境:Windows10Pro excel2007 VB6.5
上記以外のアスキーコードでは、
?[Chrを用いた、Asc?コード→文字への変換] → ?[Ascを用いた、文字→Asc?コードへの変換]
の順序で2回変換すると最初と最後でコードが一致します。
しかし、129~159、224~252の範囲だと、
?変換では「・」、?変換では「-32443」が出力されます。(129~159、224~252の範囲ですべて同じ結果)
変換に適した別のコマンドがある、そもそもこのVerでは動作しない等、アドバイスをよろしくお願いいたします。
※大元の目的としては、オシロスコープから取り込んだ画像バイナリデータを画像データにするため、Asc?コード→文字への変換を行おうとしています。
456:デフォルトの名無しさん (ワッチョイ bf2f-8Jcx)
20/04/19 22:31:33 oozYSe6W0.net
文字として表示って、その範囲をどんな文字で表示したいんだ?
画像バイナリデータを画像データって、普通画像データはバイナリなんだが
文字として表示しないならとりあえずAscBとChrB使えば一致するんじゃね
457:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/19 22:31:47 lQLRo24I0.net
>>455
アスキーはAsc?じゃなくてAsciiな
あと、画像データはバイナリなのに、どうして文字に変換するのかもわからない
方法が間違ってないとして、どこかでデータが化けてる可能性があるけど、どこが悪いのかその文章だけではわからない
まずは変数の型をチェックかな
458:デフォルトの名無しさん (ブーイモ MMcf-csEB)
20/04/19 22:58:29 BbIK31/CM.net
-32443は文字化けした時に表示される文字のコードだから、根本的にデータの受け渡し方法を間違えてる
459:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb)
20/04/19 23:08:35 Dosl7noD0.net
覚え初めてまだ三日だけどなかなかエクセル関数のように簡単にはいかんもんだね…
流石入門といえどプログラミング、敷居が高い
(A1:B1)から羅列されてる数字を(C1:D1)に
コピーしてABS関数で絶対数に変換
こんな事すらなかなか難しい
460:デフォルトの名無しさん (ワッチョイ 57ad-LzhE)
20/04/19 23:11:40 yAfHWdhM0.net
VBAは覚えることが多いだけで
やってることは関数と大差ない
461:デフォルトの名無しさん (ワッチョイ b77c-IHcq)
20/04/19 23:18:18 xFnV3YLr0.net
3日?勉強中とかいって1ヶ月近く経ってない?
462:デフォルトの名無しさん (ワッチョイ 1701-xa8R)
20/04/19 23:20:42 5r3nTnp70.net
>>456 >>457
長文の返答失礼します。
>>文字として表示って、その範囲をどんな文字で表示したいんだ?
10進数数字をASCii文字に変換しようとしています。
(66→B 77→M)
>>画像バイナリデータを画像データって、普通画像データはバイナリなんだが
呼び方が不適切だったかもしれません
?画像データ:BM>・・・(Bitmapファイルをテキスト形式で表示したもの)
?画像バイナリデータ:66 77 62 150・・・(上記を10進数変更したもの。オシロスコープからはこの形式でデータを取り込んでいる)
>>あと、画像データはバイナリなのに、どうして文字に変換するのかもわからない
取り込んだ?データを?データ(文字列)に変更、
得られた文字列をファイルに入力し、拡張子を変更して画像ファイルを作成する目的です。
>>文字として表示しないならとりあえずAscBとChrB使えば一致するんじゃね
Chr、ChrB、ChrWでそれぞれ確認したところ、
・Chr
Chr→Asc変換前後で一部データ一致せず。正規データとは一部不一致あり。
・ChrB
ChrB→AscB変換前後で全データ一致。正規データとはほとんど不一致。
・ChrW
ChrW→AscW変換前後で全データ一致。正規データとは一部不一致あり(Chrと正規データの不一致位置と同じ位置)。
※オシロの外付けFDで取り込んだ画像データを正規データ呼んでいます。
※ChrとChrWでは129~159、224~252の範囲のデータのみが正規データと不一致だったが、ChrBでは確認した範囲ではすべてのデータが不一致
>>まずは変数の型をチェックかな
オシロスコープから取り込んだ?データは配列のByte型、Chrで文字列に変換した?データはString型です。
463:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb)
20/04/19 23:33:41 Dosl7noD0.net
>>461
やったというより訳も分からずここの人にただ完成させてもらっただけだから俺の本当のVBAの勉強はこれからという感じで
おかげで肩の荷が降りて基礎から学べる幸運な情況ですね
変数の宣言やデータ型は何となく理解して
こっから仕事で簡単に自分でやってけそうな関数をこなせるようにしていきたい
ここの列が空白になるまで指定の列に四捨五入した数値を貼り付け
とか絶対数を貼り付け
あとは数値のバラし
とか覚えていって自職場で簡単なVBAのテンプレート作って行けたらいいなと
464:デフォルトの名無しさん (ワッチョイ 1701-xa8R)
20/04/20 00:04:39 jmR48CvL0.net
>>458
アドバイスありがとうございます。
大部分(129~159、224~252以外)の文字変換は問題なかったですが、今一度変換方法を再確認いたします。
465:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/20 00:13:41 01IV/2aE0.net
>>462
もしかして、それって何も変換せずにそのままバイナリファイルに書き出せばいいのでは?
テキストファイルとバイナリファイルの違いは、出力方法はわかってる?
466:デフォルトの名無しさん
20/04/20 00:54:15.80 3RmvNNii0.net
>>462
だから例えば130や250という数値をどういう文字にしたいんだ?
>Bitmapファイルをテキスト形式で表示したもの
普通に言うビットマップファイルはバイナリだからテキスト形式で表示なんてできないが
というか、たんにいわゆる.BMPのファイル作りたいって話じゃないのか
お前がいってるBitmapファイルってどんなんだよ
なんにせよ出力したいデータフォーマットちゃんと確認しろ
467:デフォルトの名無しさん (ワッチョイ ff8e-eUuY)
20/04/20 01:18:49 ayPjQ7gM0.net
なぜ次から次へと馬鹿が出てくるのか
468:デフォルトの名無しさん (スプッッ Sddf-Ho7r)
20/04/20 01:59:49 7tfcEhPrd.net
>>467
外出を自粛したり自宅で仕事する人が増えたから
みんな体力とヒマを持て余してる
469:デフォルトの名無しさん (スフッ Sdbf-Ho7r)
20/04/20 02:13:58 ngLECqIpd.net
>>462
Asc?とかASCiiとか、なんでいちいち気持ち悪い書き方をするのか
こんなん入力するのも面倒だろうに
正式には全部大文字でASCII、許容範囲で小文字ascii、賛否ありそうだけど頭だけ大文字Asciiもギリ許せる、どれかにしてくれ
1文字たりとも間違いを許さない厳密さがないとプログラミングは無理だぞ
470:デフォルトの名無しさん
20/04/20 02:14:21.83 ngLECqIpd.net
とにかく、説明がへたくそすぎて、何が悪いのかさっぱりわからん
動かない今のプログラムをここにそのまま書いてくれ
たぶんそれ見た方が早い
あとオシロスコープの機種名も
471:デフォルトの名無しさん
20/04/20 03:07:35.60 HepRq5En0.net
勉強しても仕事より辛い
472:デフォルトの名無しさん (スフッ Sdbf-csEB)
20/04/20 03:16:22 0LewM/0Ud.net
たぶん、こうだな
Open "オシロ画面.bmp" For Binary Access Write As #1 'ファイル名を指定
Put #1, , 変数名 'バイト配列をそのまま全部出力
Close #1 '終了
473:デフォルトの名無しさん (ワッチョイ 77da-Ho7r)
20/04/20 06:02:11 1SCvgf4l0.net
>>471
就職先間違えたんじゃね
474:デフォルトの名無しさん
20/04/20 09:42:05.89 kpWyfGjqd.net
>>454
日本語が理解出来て無いバカニートはお前だろw
>要望に答えるためには、今動いてるものも解析しないと答えられるわけが無い。
>そのコ一ドが何やってるかわからずに機能追加なんてできるわけが無い。
だから>>325で四苦八苦してるんだろ。
ついでに言うと、こっちはちゃんとドキュメント残してる。
でもな、VBAの場合で今まで見聞きした前任者、前任の会社は残して無いことが非常に多い。
開発やってればそういう話、よく聞く話なんだよ。
475:デフォルトの名無しさん
20/04/20 09:53:56.27 k6bRrEuIM.net
>>474
マジで日本語理解できないの?
時系列ってわかる?
それとも無職の妄想だから同じ話を繰り返すしかなくなったのか?w
> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す
できてないから今アタフタしてるだけだろ
476:デフォルトの名無しさん
20/04/20 10:02:13.61 8H2k4fX/d.net
>>475
???
出来てるから今、四苦八苦してるんだが。
解析に苦労してると書いてるだろうがw
477:デフォルトの名無しさん (スップ Sd3f-N0vN)
20/04/20 10:04:53 8H2k4fX/d.net
ついでに言っとくと、正直に言えばたった今じゃねえ。
2週間程度前の話だ。
でも掲示板で、そんな説明することは無いだろ。
どーでも良い話だからな。
478:デフォルトの名無しさん
20/04/20 10:07:15.13 8H2k4fX/d.net
>>475
さらにいうと、お前の言うとおりなら、日本にはまともでない会社だらけになっちまうけどなw
479:デフォルトの名無しさん (ドコグロ MM5b-h94e)
20/04/20 10:21:33 RWBNH8g+M.net
>>476-477
できてるって何が出来てるんだ?
どんどん話が壊れてるぞ
>>478
他社コードの保守はリスク高いから基本受けないし受けるとしたらそれ相応の対価を要求するなんて常識だぞ
言いなりになってそういうのを受けないと死んじゃうクズ会社なら愚痴ってないでまともに働けよw
480:デフォルトの名無しさん (ブーイモ MMcf-9YMR)
20/04/20 10:51:40 Smt4njnQM.net
>>479
常識が通用しない現場なんていくらでもある
お前の経験値が足りないのはよくわかったから、あと15年ぐらい、もっと修羅場を経験してから出直してこい
481:デフォルトの名無しさん (ドコグロ MMdf-h94e)
20/04/20 12:53:38 zSz1bMm9M.net
>>480
うん、常識の通じないクズ会社があることは知ってるよ
それが当たり前とか思ってるのが痛々しい
って話ねw
482:デフォルトの名無しさん (アウアウエー Sadf-Ho7r)
20/04/20 13:20:10 +VtGXs+Fa.net
>>480
結果的に0から作るのと見積額が変わらなくなることも
0から作った方が見積もりが安いこともよくあるw
483:デフォルトの名無しさん (ブーイモ MMcf-IW4T)
20/04/20 17:29:22 LK5TIQvQM.net
C5とD5の平方根をE5に入力する
これをC列が空白になるで行う
のシンプルなコード教えてくだせぇ
484:デフォルトの名無しさん (ワッチョイ ff8e-eUuY)
20/04/20 17:33:09 ayPjQ7gM0.net
なぜ次から次へと馬鹿が来るのか
485:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r)
20/04/20 17:47:32 gp23hNl10.net
>>483
Columns("C:C").ClearContents
486:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r)
20/04/20 17:58:37 01IV/2aE0.net
>>483 意味不明
>>485 なるほど、うまいな
487:デフォルトの名無しさん (ワッチョイ b77c-IHcq)
20/04/20 20:13:51 Y6XPlQfH0.net
まともに勉強してないだけだと思う
488:デフォルトの名無しさん (ワッチョイ d7ac-RTks)
20/04/20 20:20:08 xfj95GQN0.net
sqr(sqrt)関数あるんだな
489:デフォルトの名無しさん (ワッチョイ 5709-xa8R)
20/04/20 20:27:38 326Vj6040.net
皆様は、同一のブック内で複数のマクロがあり、それらの実行時に共通の処理を
させたいとき(実行しますか?の確認メッセなど)どういうコードを
書いておりますでしょうか。
私は開発→挿入→ボタン(フォームコントロール)にそれぞれマクロを登録して
実行させており、これらのボタンclick時に共通イベントを設定しようと
考えているのですが。非効率的でしょうか。
490:デフォルトの名無しさん (ワッチョイ 5709-xa8R)
20/04/20 20:30:00 326Vj6040.net
補足です。現在は共通処理sub作って、マクロごとにそれをcallしておりますが、
そのブックで日々マクロが増加してきており、そのcall一行すら面倒になってきました・・・
491:デフォルトの名無しさん (ワッチョイ b77c-IHcq)
20/04/20 20:37:06 Y6XPlQfH0.net
辞書登録でもしておくとか
492:デフォルトの名無しさん (オッペケ Sr8b-uk89)
20/04/20 20:57:06 +CR9zmner.net
>>489
application.callerとselect caseかな
493:デフォルトの名無しさん (ワッチョイ 5709-xa8R)
20/04/20 21:57:48 326Vj6040.net
>>492
おお、vba実行時に処理できるメソッドがあったんですね!
自分の勉強不足でした、大変助かりました。使わせていただきます。