[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 09/20 10:57 / Filesize : 218 KB / Number-of Response : 791
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA質問スレ Part13



1 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 12:25:04 ]
過去スレ
01 pc11.2ch.net/test/read.cgi/tech/1054356121/
02 pc11.2ch.net/test/read.cgi/tech/1168308855/
03 pc11.2ch.net/test/read.cgi/tech/1180192018/
04 pc11.2ch.net/test/read.cgi/tech/1189814602/
05 pc11.2ch.net/test/read.cgi/tech/1197448064/
06 pc11.2ch.net/test/read.cgi/tech/1205231499/
07 pc11.2ch.net/test/read.cgi/tech/1212587819/
08 pc11.2ch.net/test/read.cgi/tech/1219673793/
09 pc11.2ch.net/test/read.cgi/tech/1228372971/
10 pc12.2ch.net/test/read.cgi/tech/1235332603/
11 pc12.2ch.net/test/read.cgi/tech/1241885130/
12 pc12.2ch.net/test/read.cgi/tech/1247566074/

357 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:22:58 ]
保護モード Navigateでぐぐれ

358 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:33:05 ]
>>355
わざと後出ししたな

359 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:41:16 ]
Webクエリをマクロで記録は気に食わないのか?
Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:="URL;www.google.co.jp", _
Destination:=Range("$A$1"))
.Name = "www.google.co.jp"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub

360 名前:348 [2009/10/18(日) 22:41:33 ]
>>356
だめか?

>>357
保護モードを解除したがだめです。

>>358
すまん




361 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 22:45:47 ]
webbrowserコンポーネント使えば?

362 名前:348 [2009/10/18(日) 22:48:17 ]
金曜日の夜からVBAを触り始めまして、WEBクエリという単語は何度か目にしましたが
スルーしてました。

これだとテキスト形式での貼り付けになってしまいますね?
ページを丸ごとコピーして(HTML、画像も)貼り付けたいのです。
できるのかな?ちょっとクエリについて勉強してみます。

残り73分で!

363 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:03:06 ]
OSとIEのバージョンを後出しされてしまったでござるの巻

364 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:06:24 ]
> ちなみにVISTA,IE7,officeXPという環境です。

正直言おう
その環境を再現して動作確認するのが面倒

365 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:11:07 ]
VistaにIE7にOfficeXPって、わざといらない子ばかり集めて何してんの?何かの罰ゲーム?



366 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:17:04 ]
Webクエリで画像まで取り込む方法ってあったっけ?

367 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:24:31 ]
>>348
VBA初めて作る初心者です


初めてでIEからデータ取得なんてできるわけないし、
ここにソースを貼ってもらっても使いこなせるわけ無い


むだ

368 名前:348 [2009/10/19(月) 00:29:41 ]
できた。

みんなありがとう

369 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 00:32:13 ]
シートにwebbrowser貼れば?

370 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 00:59:37 ]
>>368
できたら何がダメだったか原因書こうな
たとえショボミスでも、だ
同じ質問がきたときウザいだろ

371 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 02:03:39 ]
VBA使いの皆様へ

VBAとExcelは余り相性が良くありません。
VBAをExcelの上で使うとVBAもExcelも下手になることが
多いです。Excelを使う場合は、出来る限りVBAを使わず
シートの上の数式だけでなんとか出来ないか先ず考えま
しょう。
Excelで本格的な大量計算を行うのは向いていません。
Excelは概して計算が早く無いからです。
VBAを学びたいというのであればAccessのほうが
がおすすめです。

372 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 04:51:58 ]
hagedo

373 名前:325 mailto:sage [2009/10/19(月) 12:55:44 ]
>>343
ネットワークドライブの割り当てもやってみたんですが、「ネットワーク名がみつかりません」になってしまうんです。

>>341
やってみましたが、結果は変わらずでした。ありがとうございます。

>>342
オフコン系SEなのでWEBDAVとは初耳でした、ありがとうございます。色々調べてみます。
ちなみに新しいブラウザにURL入力しファイルを開いてもhttp://〜のままでした。

374 名前:デフォルトの名無しさん [2009/10/19(月) 13:33:05 ]
>>371
WorksheetFunction使えばいいやん

375 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 13:47:51 ]
userformを見えなくするのに

unload meと
userform1.hide

が有りますけど(他にもあるのか知りませんが)、この違いって何ですか?



376 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 14:33:00 ]
>>375
hideは見えなくなるだけでまた復活させることができる。例えばテキストボックスの中身とかそのまま残ってる。
unloadは完全に消去

377 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 16:21:50 ]
>>375
簡単に言うとUnloadはメモリから削除してしまう。
hideは字の如くメモリに残したまま見えなくするだけ。

378 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:22:44 ]
>>376-377
ありがとです。

後で再利用するなら hide もう要らないなら unload ですね。

379 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 17:47:45 ]
unload 378

380 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 18:28:22 ]
>>379

379.visible = false

381 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:12:37 ]
ユーザーフォームを印刷しようと思ってるのですが、ユーザーフォーム自体のサイズが大きいのでA4のサイズに納まらずはみ出てしまいます…

A4サイズに縮小して印刷する方法はないでしょうか?

コードはシンプルに
userform1.printform
だけです。
かなりググッたりしてみましたが、良いホムペもなかったので…

382 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:37:40 ]
>>373
いやだからhttp://でアクセスできるんだけど読み取りになるんだよ。
それはhttpプロトコルの制約だから。
http://を\\サーバIPにして後ろの/を全て\になおしてみて。

383 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 19:43:01 ]
>>381
縮小印刷はプリンタドライバの仕事。機種依存になるので自力で試行錯誤が必要

384 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 20:33:33 ]
excel2007

リストボックスに3列データを入れる事が出来るようになったとこなんですけど

(1) これタイトルみたいなのを付ける事は出来ないんですか?

コード  商品名  支店 ←付けたいタイトル
9999 xxxxxxxxx xxxxxxx ←データ

みたいな感じで。

(2)
code=Userform1..ListBox1.Text
で選択したコードを拾う事は出来たんですが、この例で商品名を拾うにはどのようにすれば良いのですか?




385 名前:デフォルトの名無しさん [2009/10/19(月) 21:22:18 ]
【1 OSの種類      】 Windows XP SP2
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか  】 4日目 勉強中
【4 VBAでの回答の可否】 可
まだひよっこちゃんですが皆さんよろしくお願います。

マクロの勉強兼ね、エクセルでTOEICの単語帳を作ろうと思っています。
形としましては、
英単語および日本語訳をシートのA、B列に羅列し、
ユーザーフォームで、
英単語用のテキストBOX1、コマンドボタン1、
日本語用のテキストBOX2、コマンドボタン2
暗記済みのチェックボックスが3つ
という構成で、
コマンドボタン1を押すとランダムで英単語が選択され、テキストボックス1に表示
その状態でコマンドボタン2を押すとその訳がテキストボックス2に表示され、
暗記済みの時はチェックボックスにチェックをつけ、3つたまるとその単語は二度と出てこないようにしようと思います。
また、再度ファイルを開いても単語ごとに同じ状態が保存されているようにしたいと思います。

単語数が600あるという設定で、以下のように作ってみましたが、日本語訳表示の時点で詰まってしまいました。




386 名前:385 [2009/10/19(月) 21:24:01 ]
Private Sub UserForm_Click()
End Sub

Private Sub UserForm_Initialize()
End Sub

Private Sub CommandButton1_Click()
Dim intmax As Integer
Dim intmin As Integer
intmax = 600
intmin = 1
TextBox1.Value = Cells(Int((intmax - intmin + 1) * Rnd + intmin), 1)
End Sub

Private Sub CommandButton2_Click()
TextBox2.Value = TextBox1.Value.Offset(0, 1)
End Sub

CommandButton2 の TextBox2.Value = TextBox1.Value.Offset(0, 1)なんかは
明らかにおかしいかと思いますが、テキストボックス1に表示した、英単語をどのように返せばいいのでしょうか。
Cells(Int((intmax - intmin + 1) * Rnd + intmin), 1)を再度使うと、新たなランダム値を取得してしまうのですしょうか?
かなり初歩的かもしれませんが、紙にプリントしてさっさと単語覚えた方が早いんじゃないかと、焦ってきましたもんで
でも何とか完成させたいので、どなたか以下のいずれでもいいのでご教授ください。

・ランダム値が同じ順序ではなく、常に変化する方法
・チェックが各英単語ごとに反映させる方法
・そのチェックがファイルを閉じても保存される方法
・3回チェック済みの英単語を非表示にする方法(削除ではなく)

よろしくお願いします


387 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 21:56:18 ]
>>385
・ Cellsを使う時は、シートを指定したほうが良い

・テキストボックス2に日本語訳を返す為に
 英単語を表示する時に使用したセルの行位置を保存しておく
 →モジュールレベル変数を利用する

つー事で下記はいかが?

Private mRow As Integer

Private Sub CommandButton1_Click()
Dim intmax As Integer
Dim intmin As Integer
intmax = 9
intmin = 1
mRow = Int((intmax - intmin + 1) * Rnd + intmin)
TextBox1.Value = Worksheets("sheet1").Cells(mRow, 1).Value
End Sub

Private Sub CommandButton2_Click()
TextBox2.Value = Worksheets("sheet1").Cells(mRow, 2).Value
End Sub

388 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:07:56 ]
今まで快適に使えていたエクセルファイルが、
突然アホみたいに重くなって起動が容易じゃない。
色々調べたけどさっぱり解らない…。
誰か助けてください。

・サイズは600KBほど
・隠れてるオブジェクト無し
・使用範囲以外に隠れデータ一切無し
 (書式設定やリンクなど)
・シート30枚ほど
・モジュールの解放もやってみたが改善せず



389 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:13:45 ]
特定ファイルだけ?
ハードディスクが死にかけてるとか

390 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:18:01 ]
ウィルスチェックoffにして開いてみれ

391 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 22:19:53 ]
他のファイルのシートと連動させてるようなのだと
ファイルの置き場所変わっただけで
リンク先行方不明連発で死亡とかあるから
Excelきらい

392 名前:388 mailto:sage [2009/10/19(月) 22:54:19 ]
>389
特定ファイルだけです。
会社で作成したデータ集計用のファイルです。
これ1つだけが異常に重くなり、開く時に
CPU100%を食う状況になっています。

>390
ウィルスチェックoffにすることは出来ないです。
会社で常にネットワーク接続されてるもので…。




393 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:22:01 ]
>>388
ここは Excel VBAスレなんでスレ的に考えると

VBAの処理が 異常に時間がかかってるのでは?
原因として
 ・VBAのコードを変更した為に 異常なループが発生した
 ・元々のVBAのコードにバグがあって あるデータの組み合わせで
  異常なループとなった
とか?

だとすれば
とりあえずオープン時実行するイベント処理停めてみたら?
イベントプロシージャの先頭に Exit Sub を入れてみる

394 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:31:32 ]
>>392
ローカルにコピって
スタンドアロンのPCでテスト汁
さらにウィルスチェックoffにして開いてみれ


395 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:46:05 ]
>>392
xlbファイルを削除する。
CドライブをExcel*.xlbで検索してみて。



396 名前:デフォルトの名無しさん mailto:sage [2009/10/19(月) 23:58:33 ]
>>391
そんな使い方しないよ。

397 名前:385 [2009/10/20(火) 00:54:42 ]
387さんありがとうございます。
値を保存するという便利な方法があったんですね。
勉強になります。おかげさまで単語帳っぽくなりました。

残りのチェックボックスにかかわる部分ですが、もう少し努力してみます。

ただ
・チェックを各英単語ごとに反映させる方法
・3回チェック済みの英単語を非表示にする方法(削除ではなく)
これらがどうにもできそうにないです… すんません

チェックボックスにチェック入れた単語のどこかの列に、何かしら数字など加え
その値を返して、状態を判断することしか思いつかないのですが、
何かもっと良い方法ありますかね?




398 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 01:21:27 ]
とりあえず出来る方法を思いついたなら、それでやればいい
その方法だとこんな問題がある、とかならそれを質問すればいい
もっと良い方法とか漠然と聞かれると速度房がアップ始めるぞ

399 名前:384 mailto:sage [2009/10/20(火) 08:16:29 ]
自己解決


(1) これタイトルみたいなのを付ける事は出来ないんですか?
フォームのリストボックスの上方にラベルを配置し、それをタイトルとするように
しました。

(2)code=Userform1..ListBox1.Text で選択したコードを拾う事は出来たんですが、
この例で商品名を拾うにはどのようにすれば良いのですか?

Dim n As Integer

n=UserForm1.Listbox1.ListIndex

xxx = ListBox1.List(n,0)
yyy = ListBox1.List(n,1)
zzz = ListBox1.List(n,2)


以上、スレ汚しでした


400 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 10:28:27 ]
あらあらこんなに汚しちゃうなんて……イヤラシイ子ね……フフフ

401 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 12:38:07 ]
ここに速度厨なんている?
俺は速度より美しいか汚いかにこだわるが、たまに速度厨と勘違いされる。
汚いのは遅いって大体決まってるけどな。
そこの君、お前だよw

402 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 19:25:43 ]
>>385
完成したらサンプル見せてください。お願いします。

403 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:14:22 ]
VBA勉強中の初心者です。
セルA1〜A10まで100
A11に1
この状態で1がある行番号を手に入れたいんですが
結果は2です。
どうやったら11を入手出来るんでしょうか?
Dim rng As Range
Set rng = ActiveSheet.Range("A1:A11").Find(1)
A = rng.Address
B = Rows(A)


404 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:21:06 ]
>>401
誰を煽ってるんだよw
唐突過ぎてわろたわ

405 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:49:07 ]
>>403
100 という文字列での 1の部分でヒットしているみたいね
とりあえず下記ではどう?
Set rng = ActiveSheet.Range("A1:A11").Find(1, LookAt:=xlWhole)



406 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 21:56:20 ]
Find関数はいろいろとバグがある。

407 名前:405 mailto:sage [2009/10/20(火) 22:08:06 ]
>>406
たしかに今回の場合だと
セルの表示形式を数値にすると ヒットしなくなるね

408 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:09:02 ]
たしかにオートフィルタとかのVBAの使い勝手がいい

409 名前:392 mailto:sage [2009/10/20(火) 22:43:00 ]
解決しました。
tmpファイルを全て削除してみたところ、
かなり軽減されましたがまだ反応が鈍かったため、
思い切って新規エクセルに全て
コピーしてみました。

結果、快適に動くようになりました。
おまけにサイズも400kbまで小さくなりました。

410 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 22:57:36 ]
>405
有難うございます。
明日になってしまいますけど、試してみます。
上手くいったら、その時に
LookAt:=xlWhole
の意味を理解したく教えて下さい。

411 名前:デフォルトの名無しさん mailto:sage [2009/10/20(火) 23:29:44 ]
特定の文字列にヒットする条件ならワークシート関数が強力だが
勉強しはじめなら、セルを一個一個確認してループさせる手法からハイルべき
特にエクセルVBAなら

412 名前:405 mailto:sage [2009/10/20(火) 23:37:10 ]
>>410 & 411

>>411 の意見には賛成です
今回の場合は特に

>>410 の質問の回答ですが

Findは Excel本体の検索とほぼ同じものです
マクロの記録をいろいろしてみると分かると思いますが
"完全に同一のセルだけを検索する"です

それと>>407 へ書いたけど
セルの表示形式が数値だと失敗するかもです
一応 標準形式だとうまく検索できたのだけど

413 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 07:11:50 ]
Findメソッドは基本的に文字列を検索するもんだ。
まさか数値を検索してバグがあるなんて言ってるんじゃねーだろうな。

414 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 13:53:11 ]
ちょっと暇なときにVBA勉強しようと思うんですが、勉強するなら2003と2007どっちがいいですか?

415 名前:325 mailto:sage [2009/10/21(水) 15:09:21 ]
>>382
ありがとうございます。勘違いしてました・・・・
しかし、\\サーバIPにしてもだめでした。

Sub COPY_SAMPLE()
Dim objShell
Dim objFolder

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace("\\サーバ名\フォルダ名1\フォルダ名2")

If (Not objFolder Is Nothing) Then
objFolder.CopyHere "c:\TEST.txt"
Else
MsgBox "Nothing"
End If

Set objFolder = Nothing
Set objShell = Nothing

End Sub

Nothingのメッセージボックスが出ます・・・



416 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 15:37:47 ]
>>414
自分が持ってんのがどっちなのかによるでしょ。
今からなら2007の方が良いのかなとは思うけど。


417 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 16:11:22 ]
>>416
ありがとうございます。持ってるのが2000と2007だったので2007勉強することにしました

418 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:02:12 ]
2000と2007しかもってないのに2003を選択肢にするとは・・・できる

419 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 20:03:45 ]
>>415
q.hatena.ne.jp/1108018134
これでやってみな。
ヒントはきちんといかそうぜ。

420 名前:410 mailto:sage [2009/10/21(水) 21:43:51 ]
>411-412
上手くいきました。有難うございます。

>413
そのまさかなんですが・・・
なんとか上手くいきました。独学&ヘルプ@2007ではなかなか上達しないですね。今度、本屋行ってきます!

421 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:04:58 ]
いやバグはあるよ。

422 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 22:09:25 ]
【合法】みんなズッキーニでヘヴン状態しようぜ!!
namidame.2ch.net/test/read.cgi/yasai/1223375038/

423 名前:デフォルトの名無しさん [2009/10/21(水) 22:51:50 ]
初心者です。質問させてください。
XP、office2000において、onactionで呼び出すsub hogeにsingleの引数を複数渡したいのですが、どのようにすればよいか教えてください。

.onaction("'hoge, arg1,arg2'")

とかだとうまくいきませんでした。

424 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:41:28 ]
select case の使い方についてですが

例えば、A4の値及びB4の値によって条件を分岐させたい時に (A4 1または2 B4 同じく 1または2)
Select Ccase Cells(4,1) Cells(4,2)
case 1 1
case 1 2

end select

みたいな使い方出来ないんですかね?Excel2007では

select case cells(4,1) cells(4,2) でエンター押した瞬間に
エラーになっちまいましたが。


425 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:52:34 ]
二十判定は出来ない
変数とかに格納したり論理結合したり
ただ1か2のどちらかなら、文字列結合すりゃいい



426 名前:デフォルトの名無しさん mailto:sage [2009/10/21(水) 23:58:26 ]
>>425
了解しました

427 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 09:32:17 ]
>>423
.OnAction = ”'hoge””arg1””,””arg2””'”

428 名前:デフォルトの名無しさん [2009/10/22(木) 11:55:51 ]
java経験しかないまったくの初心者ですが、質問させてください

列AQの行n1の文字列hoge1を取得して、hoge1を列Cより検索、
発見したらその行n2の列Bの文字列hoge2を列AUのn1のセルに代入
これをAQの行全てで実行したいのです

Cにおいてhoge1が重複することはありません

どうかよろしくお願いいたします

429 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 12:04:24 ]
vlookup

430 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 12:21:27 ]
何行あるかしらんが、列全部にvlookupに限らず参照判定関数入れるのは

そーゆーときは配列に流して連想しる

431 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 13:47:33 ]
Ver.書くのを忘れてました!ごめんなさい

XPでExcel2003です

列Dの行n1の文字列hoge1を取得して、hoge1を列Cより検索、
発見したらその行n2の列Bの文字列hoge2を列Hのn1のセルに代入
これをDの行全てで実行したい、に変更させてください

VBAとExcelマクロの知識が0なんです…
vlookupという関数を使えばいいのですか?
Cは2988行、Dは1284行です

sub test()
dim name as string

for i = 1 to 1284
name = cells(i, 4)
if (vlookup(D$i, C1:C2988, 2, false)) = name then
copy()
pastespecial()

endsub

こんな方向性で大丈夫ですか?

432 名前:325 mailto:sage [2009/10/22(木) 14:38:41 ]
>>419
そのURLはググってる最中に何度か訪れたんですけど、
ちょっと私には扱えそうもなかったんでスルーしてたんですけど、
頑張って調べながらやってみたら2〜3度エラーが出ましたが、
希望通りアップロード出来ました!誠にありがとうございました。
一年分の便秘が治ったようなすがすがしい気分ですw

433 名前:デフォルトの名無しさん mailto:sage [2009/10/22(木) 15:16:28 ]
>>431
no

434 名前:325 mailto:sage [2009/10/22(木) 15:22:42 ]
>>419
すいません、これってLZHファイルとかは扱えないんでしょうか?
TXTやSLK形式は成功したんですけど、LZH形式はエラーになったんです・・・

435 名前:434(325) mailto:sage [2009/10/22(木) 15:26:16 ]
自己解決しました。
LZH形式もいけました。ファイル名が不味かったようです。



436 名前:434(325) mailto:sage [2009/10/22(木) 15:28:23 ]
連投すみません。
LZH形式、エラーこそ出ませんでしたが、解凍すると文字化けしてまいした。

437 名前:434(325) mailto:sage [2009/10/22(木) 15:46:49 ]
再度自己解決しました。.typeと.charaset外したら正常に解凍出来ました。
スレ汚しすみませんでした。逝ってきます。

438 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 00:08:18 ]
>>431
言いたい事は分かるんだけどさ。
列Dだの列Hだの、n1だn2だって、そんなのどうでもいいよ。
それで作りたいんだろうけど、読んでて辛いです。
Aから探してBにコピーとかでいいじゃん。組み合わせるだけでしょ。

for i = 1 to 1284
name = cells(i,4).value
set rng = columns(3).find(name)
if not rng is nothing then
rng.offset(0,1).value = rng.value
end if
next

みたいな考え方でやるよ。俺なら。
今ブラウザで書いたんで、動作保障も無し。


439 名前:434(325) mailto:sage [2009/10/23(金) 09:54:04 ]
>>419さんの方法でアップロード解決したんですが、半角カナ等のファイル名をうpすると、
実行時エラーになります。回避する方法ありますでしょうか?

D&Dでうpすると正常に出来るんですが・・・・

440 名前:431 mailto:sage [2009/10/23(金) 11:17:12 ]
>>438
わーい!教えていただいたものを道標に調べつつやってみたらできました!
一応完成版を張っておきます

Sub macro()
   Dim code As String
   Dim rng As Range
   Dim name As String

   For i = 2 To 1284
     code = Cells(i, 4).Value
     Set rng = Columns(3).Find(code)
     If Not rng Is Nothing Then
       name = rng.Offset(0, -1).Value
       Cells(i, 9).Value = name
     End If
   Next
End Sub

ありがとうございました!

441 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:20:06 ]
>>439
エンコードでぐぐりな。

442 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 12:29:34 ]
>>440
そんなんで完成?
Findメソッドの引数が1個だけって大丈夫カヨ
WhatとLookInとLookAtの最低三つは必要じゃないの?

443 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 13:52:52 ]
>>442
一応ちゃんと動作しましたよ!
今回一回だけ動けばいいマクロなので、結果に間違いがなければOKです!

444 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:17:40 ]
>>443
そりゃたまたまでんがな。
何もいじくってない状態じゃ部分一致だが、それでいいの?

445 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:28:40 ]
本人がOKってんだからいいんじゃね?



446 名前:デフォルトの名無しさん mailto:sage [2009/10/23(金) 14:38:09 ]
>>444
う、もしかして上手くいったと勘違いしてるだけなんですかね…
codeはxx01みたいな形で、nameは文字列(重複部分多々あり)なんですが

ちゃんと調べてみます!

447 名前:お願いします>< [2009/10/24(土) 01:26:35 ]
VBA初心者です。
学校の宿題で
「y=sinXとY=Xの2本の直線で囲まれた面積をVBA関数を用いて求めなさい。」
という問題がでました><
ですが、今日初めてVBAという言葉を聞いたぐらいですので、まったく分かりません( ;∀;)

どなたか記入するコードを教えて頂けないでしょうか?

448 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 01:45:00 ]
学校の宿題は自分でやらなきゃダメ><
何の前提もなしにそんな宿題が出るはずないから、わからないのは貴方がサボっていたってことでしょ

449 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 02:20:06 ]
宿題スレ池

450 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 02:45:13 ]
>>447
これは酷いwww
これが社会に出て行くと思うと末恐ろしいな

451 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 10:22:29 ]
sinXって直線なのかね

452 名前:デフォルトの名無しさん [2009/10/24(土) 10:57:44 ]
>>424
遅レスですが、こんなアイディアも。

Select Case Cells(4,1) & Cells(4,2)
case "11"
case "12"



453 名前:452 mailto:sage [2009/10/24(土) 10:59:38 ]
>>425 見てなかった… すまん

454 名前:デフォルトの名無しさん [2009/10/24(土) 11:43:07 ]
セル参照の計算式

=G5*K3+M1

セル参照+数字の計算式

=F6*G6*3.14

数字のみの計算式

=15*21*45

この数式を区別して色分けする事は可能ですか?
せめて上2つと下1つだけでも区別できればいいんですが

455 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 11:47:42 ]
>>451
正弦波だから、Y=1 から Y--1 までを往復する曲線かな。
Y=Xの直線とは1点交差するけど、2点とは交差しなんじゃないか?
よくわかんないけどw



456 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:13:36 ]
だいたい2本の直線で囲まれる面積ってなによ
問題の意味すらわかんないならVBA以前の問題

457 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:25:46 ]
非ユークリッド幾何だと日常的






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<218KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef