トップページtech
1001コメント417KB

Excel VBA 質問スレ Part33

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/10/17(木) 22:04:40.64
ExcelのVBAに関する質問スレです

                   ___
       ___      /____ヽ      ____
      /____\    | |´・ω・`| |    /___ヽ
      .l |´・ω・`|  ニX二 . ̄ ̄ ̄  二X二  |´・ω・`| l 俺たちに任せろ
      !、 ̄ ̄ ̄  ヽ   |       |    /    ̄ ̄ ̄/
       ヽ_/ヽ、  ヽ__)  \__/\_/.   /_/  ノヽ_/
             ̄                ̄ ̄

前スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/

このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。

コードが嫌な人はこちらのスレへ
http://toro.2ch.net/test/read.cgi/tech/1381151995/l50
0136デフォルトの名無しさん2013/12/08(日) 01:15:14.00
ミスった>>135はなし
モジュール:SheetParameterFactory
'シートパラメタエンティティ作成クラス
Public Function makeSheetParameter(ByVal targetSheet As Worksheet) As ISheetParameterEntity
Dim instance As ISheetParameterEntity
Select Case targetSheet.Name
Case Sheet2.Name
Dim sht2Para As Sheet2ParameterEntity
Set sht2Para = New Sheet2ParameterEntity
Set instance = sht2Para
Case Sheet3.Name
Dim sht3Para As Sheet3ParameterEntity
Set sht3Para = New Sheet3ParameterEntity
Set instance = sht3Para
Case Else
Set instance = Nothing
End Select
Set makeSheetParameter = instance
End Function
0137デフォルトの名無しさん2013/12/08(日) 01:36:17.38
ちょっと長くなって荒らしみたいになって済みません。
が、>>130の部分がインターフェースで

>>123でそのインターフェースの型を用意して、>>136でSheet2ParameterEntityか、Sheet3ParameterEntityの
どちらかを生成して>>123で用意した型に設定しています。
後は生成される二つのクラスの中以外は差異なくコードが走るため、
クラスの違いによる分岐は有りません。
この様に違うクラスで生成したものを同じクラスの型で扱えるようにする
仕組みが、中に何も書かれていない関数の正体です。
0138デフォルトの名無しさん2013/12/08(日) 01:39:18.23
うわぁ、読み返してみると長すぎだ。
ごめんなさいもう二度としません。
0139デフォルトの名無しさん2013/12/08(日) 07:58:29.03
>>119
へー、面白いな、これ。
「Width」って「うぃどぅす」って呼ぶのが一般的なんだ。
今までずーっと「ワイズ」だと思ってた。
0140デフォルトの名無しさん2013/12/08(日) 08:27:53.85
>>138
「Vba、インターフェース、ストラテジーパターン」あたりで
ググれと言えば一発で分かることだろ。
どうしても長いコード書きたかったら前
桃臼が晒してたコード書き場があったから
そこを使え。
どこだったかは忘れたけど。
0141デフォルトの名無しさん2013/12/08(日) 09:52:33.48
フランス語ではいは?
京都人「うぃどす」
0142デフォルトの名無しさん2013/12/08(日) 10:19:44.06
茨城が
いばらきと
いばらぎで僅差なんだね。
本当はどっち?
0143デフォルトの名無しさん2013/12/08(日) 11:10:35.20
本当は
ちばらき
0144デフォルトの名無しさん2013/12/08(日) 11:30:50.96
Then は ゼンって言ってます
なぜか合ってるのか不安になる音です
0145デフォルトの名無しさん2013/12/08(日) 12:26:13.53
日本語に無い音だから、カナ表記するなら近い音を探すしかない
0146デフォルトの名無しさん2013/12/08(日) 12:42:17.43
そこでGoogle翻訳読み上げお姉さんですよ
キュートなお声ですよね
0147デフォルトの名無しさん2013/12/08(日) 15:06:03.17
いやだからおかしいだろそこのリンク先
最初のAAAからして読み方の
西恋ケ窪とかどこだよ。
IEnumerableって何なんだよ。
0148デフォルトの名無しさん2013/12/08(日) 15:34:26.83
IEnumerableはインターフェースだにょ
0149デフォルトの名無しさん2013/12/08(日) 18:05:50.91
私は関数で使う変数宣言を関数の頭で行いますが、
Javaもやっている私の同僚はインデント階層切替わりの単位で変数宣言をします。
関数内のどこで変数宣言しても特に動きが変わらないのは知っていますが、
同僚に言わせるとその方が分かり易いし、いずれObject指向言語に手を付けるなら、
そっちの方に慣れておいた方がいいと言います。
そう言うものなんでしょうか?
0150デフォルトの名無しさん2013/12/08(日) 19:32:44.84
>>149
>関数内のどこで変数宣言しても特に動きが変わらない
VBAではそうでも、Javaではそうではない
言語に合わせて宣言するべきで、VBAではプロシジャの先頭での宣言が薦められてたはず
まあ、どこで宣言しても良いんだが、ルールを決めてそれを守る方が大事
先頭で宣言したり使う直前に宣言したり、混在させるのが最悪
0151デフォルトの名無しさん2013/12/08(日) 20:55:04.75
>>149
vbaはやっぱり頭で合わせるもんだと思う。
無理してjavaなんぞに合わせなくても
object指向ので作る時にそうすればいいじゃない。
0152デフォルトの名無しさん2013/12/08(日) 21:01:29.51
>>148
冗談で言ってるのかと思ったら
本当でビビったw
0153デフォルトの名無しさん2013/12/08(日) 21:07:26.86
変数の話ならそんなことより
DimとPrivateの違いって何なの?
0154デフォルトの名無しさん2013/12/08(日) 21:37:29.33
>>153
モジュールレベルで宣言したときのスコープ(参照できる範囲)が違う
と思ったけど、モジュールレベルで使うとDimと同じスコープか
プロシジャレベルで使えるかどうかの違いだけで同じだな

VBではPublicかPrivate書いたらDimを省略できる出来るだけだったと記憶してるが
VBAではそうじゃないっぽいな
0155デフォルトの名無しさん2013/12/09(月) 20:52:31.18
>>153
Dimは遠い昔の、それこそVBじゃない頃、
N-Basicとかで配列をDim(dimension)で
宣言してた頃の名残りで盲腸みたいなもんだから、
出来ればPrivateで宣言した方がいいと、個人的には思う。
コメントをアポストロフィで付けないで、REMで書く様なもん。
0156デフォルトの名無しさん2013/12/10(火) 01:13:10.32
シングルコートまたはシングルコーテーションと言わずにアポストロフィとおっしゃるのは癖ですか?何か意図があれば解説きぼんぬ
0157デフォルトの名無しさん2013/12/10(火) 01:51:33.24
それを言うなら自分もまず「シングルクォート」と書くべきじゃね
0158デフォルトの名無しさん2013/12/10(火) 02:05:44.25
>>156
引用符(コーテーションマーク、クォーテーションマーク)は、前と後の一対で使うもの
0159デフォルトの名無しさん2013/12/10(火) 02:09:15.25
シングルコーテーションマークは、英語で使われ、
日本語ではあまり使われない
(中国語や韓国語では普通に使われるらしい)
0160デフォルトの名無しさん2013/12/10(火) 02:38:21.76
シングルクォーテーションとアポストロフィは厳密には別物なんだろうけど
もともともコメント記号としてどっちの意図で使われたのかはわからんしなぁ
俺もこの文脈なら'はアポストロフィって言うんだが、ヘルプみると
>コメントを入力するには、先頭にクォーテーション (') を入力するか、Rem ステートメントで指定します。
とか
>コメント行は、先頭にクォーテーション (') または Rem ステートメントのいずれかと、
とか書いてあるから、あれはクォーテーションと呼ぶのが正しいのかもしれん
0161デフォルトの名無しさん2013/12/10(火) 03:14:25.20
記号の読み方はJIS規格で「シングルクォーテーションマーク」と定められているので議論の余地はない

英語的な解釈をするなら、アポストロフィはコメント行の先頭に使っていい記号ではない
本来はクォーテーションで前後を囲ったであろう物を、8bit時代のMS-BASICのリソース的な制約から
後半を省略可能にしたと見るのが妥当
0162デフォルトの名無しさん2013/12/10(火) 04:19:23.00
そういうのも定められてるのか。
そのJIS企画の当該ページのリンクが貼られたらこの話は終わりにしよう。
それまでは存分に語らい合いましょう!

ってExcel VBAスレじゃないですか。
おわり。
0163デフォルトの名無しさん2013/12/10(火) 04:33:44.43
>>161
お前のキーボードはjIS規格配列なのか?
VBAはいつからJIS規格になったんだ

違う規格の定義をあてはめて議論の余地がないとか笑わせる
0164デフォルトの名無しさん2013/12/10(火) 04:42:38.53
おーっとここで待ったが入ったーっ!
これは確かにと言わざるを得ない。
これで結論はもう出たということか。
VBAのオフィシャルドキュメントで、
コメントには何を使うと記載されているのか?
で、この話に執着する者達が終着できそうだ。

公式文書のリンクが貼られたらこの話は終わりにしよう。
それまでは存分に語らい合いましょう!

って略
0165桃白白 ◆9Jro6YFwm650 2013/12/10(火) 05:26:36.90
>>164
語らうには語り合うという意味があるから合うを付ける必要ないんじゃないかな。
語らいましょう、または、語り合いましょうでいいと思うんだよね。
0166デフォルトの名無しさん2013/12/10(火) 05:33:56.97
>>165
うっせーばーか
いいと思うんだよねってなんだよ
いいんだよって言い切れないのかよ
もっと自信もてよボケカス
早くVBAの公式文書のリンク持ってこいや
0167桃白白 ◆9Jro6YFwm650 2013/12/10(火) 05:38:24.57
(´・ω・`)・ω・`) キャー
/  つ⊂  \  怖いー
0168デフォルトの名無しさん2013/12/10(火) 05:57:51.45
\               U         /
  \             U        /
             / ̄ ̄ ヽ,
            /        ',      /     _/\/\/\/|_
    \    ノ//, {0}  /¨`ヽ {0} ,ミヽ    /     \          /
     \ / く l   ヽ._.ノ   ', ゝ \       <   バーカ!  >
     / /⌒ リ   `ー'′   ' ⌒\ \    /          \
     (   ̄ ̄⌒          ⌒ ̄ _)    ̄|/\/\/\/ ̄
      ` ̄ ̄`ヽ           /´ ̄
           |            |  
  −−− ‐   ノ           |
          /            ノ        −−−−
         /           ∠_
  −−   |    f\      ノ     ̄`丶.
        |    |  ヽ__ノー─-- 、_   )    − _
.        |  |            /  /
         | |          ,'  /
    /  /  ノ           |   ,'    \
      /   /             |  /      \
   /_ノ /              ,ノ 〈           \
    (  〈              ヽ.__ \        \
     ヽ._>              \__)
0169デフォルトの名無しさん2013/12/10(火) 19:53:40.33
まぁいいじゃないか。
「'」に変わりはないんだろうし。
0170デフォルトの名無しさん2013/12/13(金) 00:23:21.08
Excelにはテキストリーダー の機能があると聞きました。
それに音程付けてボーカロイドみたいにすることってできますか?
0171デフォルトの名無しさん2013/12/13(金) 05:55:28.56
無理
0172デフォルトの名無しさん2013/12/15(日) 07:52:32.98
>>170
可能
0173デフォルトの名無しさん2013/12/15(日) 20:26:43.18
マクロの設定を有効にしているにもかかわらず多変量解析を行おうとすると
マクロが使用できないか、全てのマクロが無能になっている可能性があります、と出ます
どうすれば多変量解析を実行できるでしょうか?
0174デフォルトの名無しさん2013/12/15(日) 20:39:43.00
excelのバージョンも書かず、どこに置いてあるものなのかも言わず
excel2007以降なら信頼できる場所に置いてあるのかいないのかなどなど情報を一切書かず
0175デフォルトの名無しさん2013/12/15(日) 20:45:23.66
>>173
他のブックのVBAでも同じ状態?
ググって見つかった下記などは試してみたのかな
http://answers.microsoft.com/ja-jp/office/forum/office_2007-excel/%E7%AA%81%E7%84%B6%E3%83%9E%E3%82%AF%E3%83%AD/b9379ad8-40f6-4415-b490-3090a900a8a0?msgId=122645e7-040b-400b-8f7e-77bddfa6e101
0176デフォルトの名無しさん2013/12/17(火) 22:47:10.17
よくわかりませんが同じようなスレがここにもありましたので
同じ質問になると思いますが

日付で今日より1年前のデータで、最古のデータ行を拾いたいのです
WorksheetFunction.Matchで照合の型を-1で、降順に並び替えれば
うまくいきますが、データは昇順の状態で
一年前の最古のデータ行を拾う方法ありますか?
昇順のままで照合の型を-1だと当然失敗します
(最新のデータを拾ってしまいます)
いろいろ調べたのですが、いい方法がみつかりませんでした
どなたかいい方法ありませんか?
0177デフォルトの名無しさん2013/12/17(火) 23:20:52.18
>>176
マルチ
どちらかを質問終了するべし
01781762013/12/19(木) 01:49:09.75
自己解決できました
0179デフォルトの名無しさん2013/12/19(木) 18:30:09.13
同じフォルダ内にある複数のtextの記述(数字が縦に6行)を読み込むマクロを
作りたいのですが、
たとえば1つ目のtextの1行目をA-1に 2行目の記述をB-1に …
と6行を6列のに読み込み、さらにファイル名(文字列)を7列目のG-1に読み込み、
2つ目のtextの1行目をA-2に、2行目の記述をB-2に …
と読み込ませることはできませんでしょうか?
0180デフォルトの名無しさん2013/12/19(木) 19:30:34.70
できます
0181デフォルトの名無しさん2013/12/19(木) 19:40:28.24
できましたら、その方法を教えて頂けませんでしょうか?
0182デフォルトの名無しさん2013/12/19(木) 19:52:46.93
まだできていませんので教えることはできません
0183デフォルトの名無しさん2013/12/19(木) 21:54:28.52
>>179
とりあえず書いてみたけど、やっつけなのでエラー処理とかは書いてません

以下のマクロを書いたブックと同じフォルダに"text"フォルダを作って
その中に読み込ませたいテキストファイルを入れてください。
マクロを実行すると、マクロと同じフォルダに"test.xlsx"というファイルが作成されます。
既に"test.xlsx"が存在する場合、上書きするか聞いてきます。
"text"フォルダ内には不要なファイルは入れないでください。

Option Explicit
Sub test()
Dim f As Object
Dim w As Workbook
Dim t As Workbook
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set w = Workbooks.Add
With w.Sheets(1)
 For Each f In fso.GetFolder(ThisWorkbook.Path & "\text").Files
  Set t = Workbooks.Open(f)
  t.Sheets(1).UsedRange.Copy
  If .Cells(1, 1) = "" Then
   .Cells(1, 1).PasteSpecial Transpose:=True
  Else
   .Cells(.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Transpose:=True
  End If
  t.Close
 Next f
End With
w.Close SaveChanges:=True, Filename:=ThisWorkbook.Path & "\test.xlsx"
End Sub
01841832013/12/19(木) 22:08:35.18
やべ、各テキストファイルのファイルネームを入れるっての忘れてた…orz
01851832013/12/19(木) 22:22:52.58
修正も超やっつけですが、コード中の
t.Close 
の行の前に
.Cells(.Rows.Count, 1).End(xlUp).End(xlToRight).Offset(, 1) = t.Name
ってのを一行入れてください。
0186デフォルトの名無しさん2013/12/20(金) 09:18:25.34
ありがとう!
あなたは救世主です!
本当にたすかりました。
0187デフォルトの名無しさん2013/12/20(金) 16:20:17.72
大学生でエクセルテストちょっと前にしたんですが答えは小数点第2位までて言われたので切り捨てして提出したんですが
いつ切り捨てするのかよくわかりませんでした。
計算は1度計算したのをさらにかけたり割ったりします。
ここで、
最初にかけ算→小数点切り捨て→かけ算
なのか
かけ算→かけ算→割り算など全部した後いっきに切り捨てた方が良いのか
前者でやっていたんですがこの2つだと当然答えも違ってきますよね
普通どっちが正解なんですか?
0188デフォルトの名無しさん2013/12/20(金) 18:55:18.13
>>187
http://toro.2ch.net/test/read.cgi/tech/1381151995/236
0189デフォルトの名無しさん2013/12/20(金) 22:31:06.75
ここ最近、毎日のようにマルチが現れるな
0190デフォルトの名無しさん2013/12/21(土) 23:30:15.40
>>189
スレ立て自体がマルチなんだからしゃーない
0191デフォルトの名無しさん2013/12/22(日) 06:22:28.69
ここ最近、毎日のようにマルチマルチってうるせえ馬鹿が現れるな
0192デフォルトの名無しさん2013/12/30(月) 19:22:49.48
本年大変お世話になりました
来年もお力をお借りするかもしれませんが宜しくお願いいたします

机周りの掃除が終りましたので帰ります
皆様良いお年を!@22歳OL
0193デフォルトの名無しさん2013/12/31(火) 00:00:44.71
たまにはこのスレに遊びにきてね
0194デフォルトの名無しさん2014/01/01(水) 11:34:15.70
あけおめ〜〜〜〜〜〜
0195デフォルトの名無しさん2014/01/03(金) 13:54:51.99
ことよろ
0196デフォルトの名無しさん2014/01/03(金) 22:44:38.74
さくおせ
0197デフォルトの名無しさん2014/01/04(土) 02:37:30.74
なあ、桃白白
ピラフ知らない?
0198デフォルトの名無しさん2014/01/04(土) 05:04:21.87
あけましておめでとう
23歳OL
0199デフォルトの名無しさん2014/01/14(火) 15:36:02.26
何をどこで質問したらいいかもわからないからスレ違いなら許して。
適当に1〜100までとか1〜20までとかの数字から無作為に実数の数字を抽出
するのはどうしたらいいのでしょうか。
0200デフォルトの名無しさん2014/01/14(火) 16:31:22.93
>>199
VBA 乱数 とかでググるといいと思うよ
0201デフォルトの名無しさん2014/01/14(火) 18:59:00.73
>>199
Rnd  でどう?
0202デフォルトの名無しさん2014/01/16(木) 02:21:35.14
>>199
らんだまいずもわすれずにね
0203デフォルトの名無しさん2014/01/17(金) 15:26:54.71
放置プレイ
0204デフォルトの名無しさん2014/01/19(日) 02:44:28.45
エクセルは2000、VBAは6.0です。

同じファイルにある他のマクロはちゃんと起動するのですが、
同じファイルにある、とあるマクロを実行しようと
ユーザーフォームの実行(▲を右90度傾けたボタン)を押しても
うんともすんともいいません。
エラーも出ません。
何が原因だと思いますか?
0205デフォルトの名無しさん2014/01/19(日) 03:11:26.69
>>204
一瞬で計算が終わって、動いてるのに気付いてないだけの可能性
0206デフォルトの名無しさん2014/01/19(日) 09:29:19.72
>>204
具体的なコードを貼らないと、なんとも言えん。
具体的なコードを晒すのが嫌なら、自力でなんとかするか諦めよう。

というか、コード全部は晒さないにしても、ステップ実行とかして
どの関数やステートメントで想定外の動作が起きてるか調べて
もうちょっと詳しい状況書けば、憶測も少しは煮詰まるかもだけどな。

そもそもデバッグ出来ないってのはVBA使えないのと同義だからね。
不都合が起こったところでお手上げでいいなら、コード書くだけは
パソコンで文字入力できる全ての人に可能な行為だからな。
02072042014/01/19(日) 19:45:55.40
>>205
すみません。正解です。
最初のfornextの、終了回の変数名の打ち間違いで、
どうやら0回ループになっていたようです。
>>206
すみませんでした。
0208デフォルトの名無しさん2014/01/19(日) 22:34:06.31
格言
「プログラムは決して思った通りには動かない。書いた通りに動くだけだ。」
0209デフォルトの名無しさん2014/01/21(火) 10:55:48.33
いいね♪(FB風に
0210デフォルトの名無しさん2014/01/23(木) 04:13:29.39
サブフォルダを含むpdfファイルから画像サイズだけ抜き出してセルに表示したいのですが
この場合どのようにPDFファイルのmediaboxを参照すれば良いか教えてください。
0211デフォルトの名無しさん2014/01/23(木) 04:17:34.57
win7 excel2010です
0212デフォルトの名無しさん2014/01/23(木) 19:06:40.97
どういうこと?
0213デフォルトの名無しさん2014/01/23(木) 20:00:12.85
どういうpdfなんだか差し支えない範囲で見せて欲しい w
0214デフォルトの名無しさん2014/01/23(木) 21:15:12.64
というか、Excel関係ないやんw

なんて言うと、例のキチガイがまたうるさそうだけど
0215デフォルトの名無しさん2014/01/23(木) 21:32:49.29
>>210
「VBA pdf」でググれば情報が見つかる
0216デフォルトの名無しさん2014/01/25(土) 18:18:15.20
Excel 2007での質問です。

(1)特定の文字列を持つセルを詮索する。

(2)(1)で検索したセルの2セル下までの行から、特定の文字列を持つセルを検索する。
  (※2セルは結合されているセルがある)

ということをしたいです。

(1)で取得したセルの行や列番号を+するなりして、Findかけてやれば(2)はいいのかなぁ、と思い、
Range(Cells(......),Cells(......)).Find()〜とかやっているのですが、うまくいきません。
どう指定して検索をかけてやればでしょうか?
0217デフォルトの名無しさん2014/01/25(土) 18:23:51.19
>>216
Resize使えよとは思うが、それでもできなくはないと思うが
動かんっていうコード張れ
0218デフォルトの名無しさん2014/01/25(土) 18:34:03.11
つーか、計算とかVBAでの操作とか行うシートで
セルの結合は使うなよ

Excelは表計算だけではなくワープロ的な機能も多くて
自由度が高いけど、その自由度の高さで不適切なデータの作り方をして
不適切なデータ形式によって自分の首を絞めるバカが多すぎる
0219デフォルトの名無しさん2014/01/25(土) 18:47:48.99
>>217
素早い反応ありがとうございます。
こんな感じです。

Dim cell_a As Range
Dim cell_b As Range

Set cell_a = Worksheets("Sheet1").Range("B:B").Find(What:="target1")
Set cell_b = Worksheets("Sheet1").Range(Cells(cell_a.Row + 1, 1), Cells(cell_a.Row + 2, 1)).EntireRow.Find(What:="target2")

セルの結合に関しては、そういう風なフォーマットになっているものからデータ取り出せ、って言うことなので、自分にはどうしようもないです……
0220デフォルトの名無しさん2014/01/25(土) 19:33:28.55
>>219
どうしようもないってことはないはずだけどね
会社とかでも、改善の提案提言はできるんだからさ
単にそれをしないで、頭を使わずサルのように与えられたモノをそのまま使うことに慣れきっちゃってるだけで

そんで、本題はおそらく
Set cell_b = Worksheets("Sheet1").Range(Cells(cell_a.Row + 1, 1), Cells(cell_a.Row + 2, 1)).EntireRow.Find(What:="target2")
   ↓
Set cell_b = cell_a.MergeArea.Cells(1).EntireRow.Offset(1).Resize(2).Find(What:="target2")
ってことじゃないかな?

シート見てないから憶測でしかコード書けないけど、これでダメだってならシートうpね
漏らしちゃまずいデータは、"target1"みたいに適当な語句に置き換えていいからさ
0221デフォルトの名無しさん2014/01/25(土) 20:06:06.50
>>220
うぉぉぉ……
無事に動きました
どうもありがとうございます

フォーマットについては掛け合って見ます
0222デフォルトの名無しさん2014/01/25(土) 22:39:14.10
Excel2013での質問です。
Do While 特定のセル.Value <> ""
で特定のセルが空白だったら終了する、という処理をしようとしています。
この特定のセルが使用中とは別シートのセルだった時の記述を教えて下さい。
データを転記&計算してデータ用のシートの中身がこれ以上ない場合に止める、ということをやりたいのですが
0223デフォルトの名無しさん2014/01/25(土) 22:53:52.87
>>222
Do While 別のシート.特定のセル.Value <> ""
0224デフォルトの名無しさん2014/01/25(土) 22:58:19.12
>>219,220
Set cell_b = cell_a.EntireRow.Offset(1).Resize(2).Find(What:="target2")
じゃないのか

というか>>219のコードでも動いてるっぽいけど
target1が(横方向の)結合セルの場合もあるのか?
だったら>>220のコードでもダメだと思うが
0225デフォルトの名無しさん2014/01/25(土) 23:12:51.30
>>223
素早いご回答ありがとうございます。
更にご質問いたしますが、特定のセル(別シート)をアクティブセルと同一座標から選びたいという時はどうすればいいでしょうか
処理を繰り返した時のアクティブセルがたまたま成績表シートC3なら、
にちゃん太郎シートC3(たまたま決まった座標)が空白の時に処理を止めるという具合です
相対参照を使うのかな?とは思うのですが……
0226デフォルトの名無しさん2014/01/25(土) 23:59:30.44
どういう設計になってんだかサパーリワカンネ
0227デフォルトの名無しさん2014/01/26(日) 00:19:28.82
すみません、わかりにくかったですね
データシートの設計
名前 性別 国語 算数 理科 社会
愛   女  80   60   75  90
02282222014/01/26(日) 00:28:45.75
途中送信してもうたorz

データシートの状態
出席番号 名前 性別 国語 算数 理科 社会
1       愛   女  80   60   75  90
2       誠   男  50   72   68  85
(以下何人も続くと思って下さい)

表示用シートは
出席番号 名前 性別 国語 算数 理科 社会 合計点 平均点
1
だけ入力してある状態で、
名前をデータ用から引っ張る→性別を(中略)→平均点を出す→次の行に移る→上の数字に1足した数字を入力→以下繰り返し
上記の操作を生徒のデータを全員分入力できたら(名前が空白セルになったら)終わりたいわけです

わかるでしょうか?
Do Whileさえうまく行けば入力自体はうまくいくことは確認済みです。
なお、上記のはやりたいことを単純化して一例で出したので、コピペしろとかそういうのはなしにしてくださいw
0229デフォルトの名無しさん2014/01/26(日) 00:38:45.97
>>225
別のシート.Cells(特定のセル.Row(), 特定のセル.Column()).Value
0230デフォルトの名無しさん2014/01/26(日) 00:39:26.01
別のシート.Cells(ActiveCell.Row(), ActiveCell.Column()).Value
0231デフォルトの名無しさん2014/01/26(日) 00:41:39.97
目的が平均と合計を出したいだけ
であればワークシート関数=average(,) =sum()

データシートの右端に加えればいいじゃない
表示用の見た目に書式を変えればいいじゃない
02322222014/01/26(日) 01:22:05.92
>>229-230
ありがとうございます!無事動作いたしました!

>>231
上記のは一例で、目的が他に色々あるし……w
0233デフォルトの名無しさん2014/01/26(日) 05:40:30.51
>>224
君にはまだ早いみたいだから無理するな
0234デフォルトの名無しさん2014/01/27(月) 20:41:31.77
今エクセルで作業をしてて、行き詰ってしまったんで助力お願いします

フォルダ内にある.CSVファイルの行数を一つずつ取得して、それを別のブック(開いていない)のC10とC12のセルに結果を貼り付けて
そのブックを新しい名前で特定のフォルダ内に保存したいです(保存ファイル名は行数を取得したファイルの名前&amp;_assにしたい)
それをフォルダ内にある.csvファイル全てに連続して処理をさせたいのですが、さすがに3000ファイルもあるとこれをしないと詰みそうです

途中までの作業はぐぐって何とかやってきましたが、ちょっとどんづまってます
よろしくお願いします
0235デフォルトの名無しさん2014/01/27(月) 21:20:37.26
>>234
Excelマクロ4.0を使えばブックは開かなくても済むかもね。
あと、CSVの行数取得はここに載ってた。
http://www.moug.net/tech/exvba/0060083.html
■ このスレッドは過去ログ倉庫に格納されています