Excel総合相談所 87at BSOFT
Excel総合相談所 87 - 暇つぶし2ch2: ◆Excel//q4U
09/09/27 21:53:39
▼━質問時の注意・決まり事━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
  ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
  Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
  どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
  但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
  ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
  例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
  その上で、どううまくいかないのかを具体的に書きましょう。
  エラーが出るなら、何処でどういうエラーが出るのか、
  想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。


3: ◆Excel//q4U
09/09/27 21:54:21
★ルールを無視すると…
 >>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ

 ★1.マルチをしてしまったら…
 A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
   それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
   マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。

 ★2.>>1★4に従わず、必要な情報を出さないと…
 A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
   VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
   適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
   これはきちんとルールに従って質問、依頼した人のみの特権です。

 ★3.情報・条件を後出しすると…
 A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
   >>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
   長文になってもいいので詳細かつ明確かつ具体的に書きましょう。


★VBAについて
 VBAとは、『Visual Basic for Application』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。 
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

4: ◆Excel//q4U
09/09/27 21:55:03
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
  ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)

5: ◆Excel//q4U
09/09/27 21:55:45
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
  ・ VBのコントロール配列と同じような操作をしたい
   (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)

 ▼ユーザーフォーム
  ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  ~~
  ||

6: ◆Excel//q4U
09/09/27 21:56:26
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。

>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。

以上でテンプレ終わり


7:名無しさん@そうだ選挙にいこう
09/09/27 22:19:40
>>1 おまえいいやつだな

8:名無しさん@そうだ選挙にいこう
09/09/28 02:32:00
>>1ー6
 *-+。・+。-*。+。*
  \   。*゚
  ∩ *
  (・ω・`)
  。\  つ
  *  丶 _⊃
 +。  ∪   ☆
  ゚+。*。・+。-*。*゚



9:名無しさん@そうだ選挙にいこう
09/09/28 04:08:38
質問です。お願い致します。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 excel エンター ペーストされる

いつのまにかセルをコピーしている状態でエンターを押すと勝手にペーストされるようになってしまいました。
どこで設定を直せば良いのでしょうか?探してみたのですがちょっとわからなかったです。


10:名無しさん@そうだ選挙にいこう
09/09/28 10:17:41
>>9
それは仕様です
コピーしていると下に、「エンターを押すか・・」と説明でるっしょ
間違えてコピーしたときはESCオスと解除されるよ

11:名無しさん@そうだ選挙にいこう
09/09/28 20:55:51
入力規則リストに連動して、ほかのセルに自動入力ってできる?

12:9
09/09/28 21:42:37
>>10
ええーそうなんですが。今まで気づかなかった。
コピーして列の一番下のその次に書き込みたくてctr+下のあとリターンで次のセルに行きたいのだけど
リターンすると貼り付けられちゃってめっちゃふべんです。わかりにくくてごめんなさい。

13:名無しさん@そうだ選挙にいこう
09/09/28 22:05:44
>>12
それだったら、ctr+下のあともう一度↓を押すのが早い

14:9
09/09/28 22:15:56
ああああー確かにそうですね。気づきませんでした。

15:名無しさん@そうだ選挙にいこう
09/09/28 22:56:23
カワイイ

16:名無しさん@そうだ選挙にいこう
09/09/29 00:06:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

上から順に入力されている数字を上下逆の順にしたいのですが
何かいい方法ありませんか?

17:名無しさん@そうだ選挙にいこう
09/09/29 00:25:36
>>16
作業列に連番を入れて降順に並べ替え
行数固定ならワークシート関数
VBA

18:名無しさん@そうだ選挙にいこう
09/09/29 00:31:21
>>17
ありがとうございます!

19:名無しさん@そうだ選挙にいこう
09/09/29 00:42:13
前スレ980ですがDropButtonClickイベントを使ったら、
今度はコンボボックス1をドロップダウンした時にエラーが発生してしまいました。
ドロップダウンリストを非表示にした時のみ起こるイベントがあればいいと思うのですが、
調べても見つかりません…
他に方法はありますでしょうか?


↓前回の質問
>vbaの質問です。
>フォーム上にコンボボックスが2つある状態で、
>コンボボックス1でドロップダウンして値を選択すると、コンボボックス2がドロップダウン状態になるようにしたいのですが、
>下記のコードではドロップダウンしてくれませんでした。(コンボボックス1が既にドロップダウン状態のため?)
>何かいい方法はありますでしょうか?
>
>Private Sub Combobox1_Change()
>Combobox2.dropdown
>End Sub

20:名無しさん@そうだ選挙にいこう
09/09/29 06:54:08
>>16
降順・昇順それぞれ専用のボタンがあるよ。(Σ”オートSUM”とグラフウィザード
のボタンの間にあります。)
並び替えたい範囲を選択してそのボタン押せば即変わる。

つか、前スレでつい最近質問&回答あったばかりなんだが。

21:名無しさん@そうだ選挙にいこう
09/09/29 07:55:04
>>20
データを降順・昇順に並べるのではなく、単に上下逆転したい時はどうすればいいですか?

22:名無しさん@そうだ選挙にいこう
09/09/29 08:57:23
>21

バカ? を ?ガハ にしたいってこと?

23:名無しさん@そうだ選挙にいこう
09/09/29 10:27:14
>>19
URLリンク(www.red.oit-net.jp)
ないんじゃないかな
エラーは「VBA コンボボックス エラー」などでぐぐるといいかも
俺のところでは再現できなかった
URLリンク(74.125.153.132)
>>21
作業列、が分からないか
例えばA列を並び替えたいとき、B列に1、2、3・・とA列のはしまで入力
そしてAB列を選択した後B列を基準に降順で並び替えると、B列が3、2、1・・
となりそれに連動してA列も変わる
このB列を作業列という。公式な呼び方かどうかは知らんけど

24:名無しさん@そうだ選挙にいこう
09/09/29 11:03:49
>>19
確かにDropButtonClickでやってみたら

実行時エラー’-2147417848 (800101108)':
オートメーション エラーです。
起動されたオブジェクトはクライアントから切断されました。

て、エラーでたわ

それで、実際どういう動作をさせたいの?
2つ同時にドロップダウンリストを表示させたいんだったら
リストボックスを使ったほうがいいと思うよ

25:名無しさん@そうだ選挙にいこう
09/09/29 11:20:12
曲線のグラフを書きたいのですが
折れ線グラフでちょこちょこ書かないと無理でしょうか?

26:名無しさん@そうだ選挙にいこう
09/09/29 11:33:06
>25
点の集合でグラフを書くなら、散布図が便利です

27:名無しさん@そうだ選挙にいこう
09/09/29 11:53:04
>>25
それでもかなり面倒そうですね
ワードでも探してみます
ありがとうございます

28:名無しさん@そうだ選挙にいこう
09/09/29 12:52:07
>>22

> バカ? を ?ガハ にしたいってこと?
質問の内容はそういうことだろ。
つまり>>20がバカということ。

29:名無しさん@そうだ選挙にいこう
09/09/29 14:07:36
また恥かくからそういう言い方はやめておきなって

30:名無しさん@そうだ選挙にいこう
09/09/29 20:55:06
>>21
エスパーが回答するよ~
「shift押しながらドラッグしたらどうなん?」

31:名無しさん@そうだ選挙にいこう
09/09/29 21:52:50
Office2000から2003になりました。
オートフィルしたり、コピペしたりすると小さなボックスが出てきてウザいんですが、
出さなくする方法を教えてください。


32:名無しさん@そうだ選挙にいこう
09/09/29 22:17:12
>>31
ツール>オプション>編集>[貼り付けオプションボタン]を表示するのチェックをはずす

手元に2003が無いのであやふやだが、これだったはず

33:19
09/09/29 23:22:28
>>23>>24
回答ありがとうございます

>それで、実際どういう動作をさせたいの?
>2つ同時にドロップダウンリストを表示させたいんだったら
>リストボックスを使ったほうがいいと思うよ

いえ、複数のコンボボックスに順番に値を入力していくのに、
1つ目に値を入力したら2つ目のドロップダウンリストを自動で開く
2つ目に値を入力したら3つ目のドロップダウンリストを自動で開く

としたかっただけなのですが、なぜかうまくいきませんでした。

諦めて手動で開くことにします。

34:名無しさん@そうだ選挙にいこう
09/09/30 00:21:43
>>33
どうもコンボボックスを繋げるとバグがおきやすいみたいだな
ボタンにするか、別のメソッド(動作)を試すといいかもしれない


35:名無しさん@そうだ選挙にいこう
09/09/30 00:30:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード     】”違うシート 集計”、”Vlookup 集計”

こんばんは。早速質問させていただきます。

今、複数のシートにデータが入っています。
Sheet1 契約店リスト >>300件くらいのリスト。2列。契約店コードと契約店名。
Sheet2 商品受注表 >>1000件くらいのリスト。
           >>受注月、受注日、契約店コード、契約店名(VlookupでSheet1から検索)、
           >>オプションのありなし(1か0が入力されている)
Sheet3 集計表1 >>ピボットテーブル

まず、Sheet2の受注表は、毎日10件くらい増えます。
これを月末に、月ごと・契約店ごとに、受注個数・オプション契約個数の2つを集計します。
これは、ピボットテーブルでなんとか作りました。(Sheet3 )

お聞きしたいのは、こんなことです。
やりたいのは、Sheet1のリストには入っていてもまだ受注していない契約店の分も「0」として表示して、
全部の契約店の受注個数とオプション契約数を出したいのです。(0個のところは営業を強化したりしたいので)

出来れば、今作っているのと似たレイアウトで、月ごとにまとめられて、かつ今までの累計も見られるようなかたちで。
Sheet1とSheet2をうまく使ってこういうものをこしらえるには、どうすれば出来るでしょうか?

前の担当者は月末ごとに電卓をたたいていて、それが手間なのとミスしやすいなあと思ってExcelでやりたいのですが。
どうか教えてください。

36:名無しさん@そうだ選挙にいこう
09/09/30 00:37:44
>>35
ピボットテーブルだとSheet2にダミーデータを入れるしかないのではないか?

SQLだと外部結合というので実現できる。
AccessやSqliteを試してみてもおもしろいよ。

37:名無しさん@そうだ選挙にいこう
09/09/30 00:47:27
2003だと追加インストールが必要かもしれんけど、データのあるブックとは別のブックから「外部データの取り込み」で
Query起動して外部結合できんじゃねーかなそれは

38:35
09/09/30 01:03:44
早速ありがとうございます。

>>35さん
申し遅れていました。Sheet2は自動でデータが入るようになっているのです。
(受注システムからデータを読んでいるのだとか)
ですので、Sheet2はいじれないかと・・・
やはり、こういったものはAccessでしょうか。わたしを含め、課内はあまり
Accessに強いものがおらず、ついExcelでなんでもやってしまおうとしてしまいます。

外部結合というのを調べてみます。37さんもありがとうございました。
あす出社しましたら、追加インストールが必要かどうかを含め、まずは検討してみます。
ピボットテーブルをかじり始めたばかりなので、ピボットテーブルで出来るのかと思い
躍起になっておりました。やはり視野が狭いのはいけませんね。

39:名無しさん@そうだ選挙にいこう
09/09/30 03:16:53
>>38
「ちょっと重い」程度のことなら、余計なことはせずに
がまんして使った方がいいかもしれんぞ
新しいシステムを導入すると必ずトラブルが起こるの法則

40:名無しさん@そうだ選挙にいこう
09/09/30 04:05:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 簡単なものなら
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 "シート保護" "ロックされた範囲の選択 再起動"

シートを保護する際「ロックされたセル範囲の選択」チェックをオフにし、
ロックされたセルは選択出来ないよう設定したいのですが、エクセルを再起動するとシートの保護はされているのに
ロックされた範囲の選択は可能になってしまいます。
複数シートを使って何度も試してみたところ、時々ロックされた範囲を選択出来ないままの場合もありました。
どういうケースでそうなるのか再現は出来ませんでした。

解決方法をご存知でしたら、ご教授をお願い致します。

41:40
09/09/30 04:24:19
書き忘れた情報を追加します。ごめんなさい。

>>40の事象は、現在作成中の納品書請求書作成用のbookでのみ起こります。
新規でbookを作成した場合は再起動しても、ロックされたセルは選択出来ないままでした。
納品書請求書作成用のbookでも、新規でシートを追加した場合は大丈夫です。

シート保護のチェックは「ロックされていないセル範囲の選択」のみにチェックを入れています。

知らない間にどこかの設定を変えてしまったのでしょうか。
よろしくお願いします。

42:名無しさん@そうだ選挙にいこう
09/09/30 07:10:20
質問です。

sub k ()

for i= 1 to 30
~~~~~~
next i


for h=1 to 10
~~~~~~~
next h

end sub

こうゆう構文ってなりたちますか??(~~~~はなんでもいいです。)
試してみたのですができませんでした。本にもこのようなものは書いていませんでした。
なにかやり方があるのか知りたくて質問してみました。
エクセル2003です。よろしくお願いします。

43:名無しさん@そうだ選挙にいこう
09/09/30 07:22:19
>>39
>「ちょっと重い」程度のことなら、余計なことはせずに
>がまんして使った方がいいかもしれんぞ

「ちょっと重い」なんて書いてあったか?

44:名無しさん@そうだ選挙にいこう
09/09/30 07:26:08
>>42
Option Explicit

Sub k()
Dim i, h
For i = 1 To 30
Cells(i, 1) = "ループ1の" & i & "かいめ"
Next i


For h = 1 To 10
Cells(h, 2) = "ループ2の" & h & "かいめ"
Next h

End Sub
できるよ

45:名無しさん@そうだ選挙にいこう
09/09/30 11:37:09
スレチなんだが、だれかVBA質問スレたてて下さい


46:名無しさん@そうだ選挙にいこう
09/09/30 14:29:16
Excel VBA質問スレ Part13
スレリンク(tech板)l50


47:名無しさん@そうだ選挙にいこう
09/09/30 16:58:19
>>46
ありがとうございます

48:名無しさん@そうだ選挙にいこう
09/09/30 18:51:16
>>44
ありがとうございました。
かなり作業が進みました。感謝です。

49:名無しさん@そうだ選挙にいこう
09/09/30 21:27:20
Excel 2007の使い方について質問です。

【内容】
Excel 2007のハイパーリンクで、外部プログラムを起動していますが、
この外部プログラムに引数を渡したいと思っています。その引数の指定方法を教えていただけないでしょうか?

**.exe *** ***

と、スペースで引数を指定すると、" "が"%20"に変換されてしまい、うまく指定できません。
スペースをうまく指定する方法を教えてください。

宜しくお願いします。

50:名無しさん@そうだ選挙にいこう
09/10/01 04:13:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 IF関数

作成したブックです。
URLリンク(www.dotup.org)

A2に文字があります。
B2からF2に日付があります。
G2のセルに、「もしB2からF2の日付の内一つでもTODAYなら、G2にA2を表示させる」
という事を行いたいです。

お手数ですがご回答よろしくお願いします。

51:50
09/10/01 04:52:03
お騒がせしました、自己解決しました。

52:名無しさん@そうだ選挙にいこう
09/10/01 04:55:43
>>50
"一つでも"ということなら
=IF(COUNTIF(B2:F2,TODAY())>=1,A2,"")

ただ実際範囲内で重複している日付は無さそうだから
=IF(COUNTIF(B2:F2,TODAY())=1,A2,"")
とやってもよさそうだけどね。

53:名無しさん@そうだ選挙にいこう
09/10/01 04:57:28
orz...

54:名無しさん@そうだ選挙にいこう
09/10/01 08:50:52
【1 OSの種類         .】 XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ある程度
【4 VBAでの回答の可否】 否
ピボットで商品の今年度と昨年度の集計を出しました。
その集計から前年比などを出すのですが
ピボットで集計したものを別のシートに貼り付けて計算式「今年-昨年」で
前年比をだしているのですが、ピボットのあるシート内でこういった計算はできませんでしょうか?

商品名 **

顧客 今年 前年 
 A 10   5
 B 15   3
以下続く     
上のものを別シートに貼り付けて

顧客 今年 前年 今年-前年←新しいシート・列にこの計算式を入れてる 
 A 10   5   5
 B 15   3   12

複数商品を何度も何度もコピペしてるので、もう少し効率的にできれば…
と思いました。判りづらいところもあるかもしれませんが
何卒ご教示お願い致します。




55:名無しさん@そうだ選挙にいこう
09/10/01 09:06:03
>>54
できるよ。そのまま式をピボットテーブルの隣に書き足せばいい。

56:54
09/10/01 09:31:18
>55
ありがとうございます!
質問前に最初やってみたのですができなくて、今やり直してみたらできました!
なんでだろう…GETPIVOTDATAってなるから何か特別なことが必要なのかと思ってました。


57:名無しさん@そうだ選挙にいこう
09/10/01 12:43:42
>>56

前年比をピボットで計算させることもできるよ。

58:名無しさん@そうだ選挙にいこう
09/10/01 13:40:49
【1 OSの種類         .】 Windows XP Pro
【2 Excelのバージョン   】 Excel2003(出来れば2007でも使いたいです)
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可(貼り付けだけなら出来ます)
【5 検索キーワード     】 まだググってません
以前に印刷の際、指定したセルに連番を作りながら、印刷が出来るような下記のVBAを作って頂きました

Sub 連番印刷()
'
' 連番印刷 Macro
'
' Keyboard Shortcut: Ctrl+Shift+F
'
Dim i As Integer
For i = 1 To 4
Range("G12").NumberFormatLocal = "-00000"
Range("G12") = i
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
Next i

End Sub


59:58の続き
09/10/01 13:42:30

しかし桁数と***の都合で
連番をアルファベットと数字で構成した4桁で繰り上げるように変更したいのですが、書いて頂けますか?
文字の順番は数字→アルファベット(逆でもOKです)です
0→1→2→3→4→5→6→7→8→9→A→B→C→D→E→F→G→H→I→J→K→L→M→N→O→P→Q→R→S→T→U→V→W→X→Y→Z→0→1
という感じで


0001→0002→・・・0009→000A→000B→000C・・という感じで
36×36×36×36=1,679,616種類を作れないでしょうか?

できれば
アルファベットで「I」と「O」は数字の「0」と「1」と誤認識する可能性がありますので
極力省きたいと思いますので、32×32×32×32=1,048,576種類の連番を作成します
しかしまとめて100万枚印刷は出来ないので、開始番号と終了番号を指定して印刷が出来るようにしたいです

開始「0000」 終了「00FZ」で512枚・・という感じです


60:名無しさん@そうだ選挙にいこう
09/10/01 16:08:23
>58

Sub Macro1()

Dim myText As String
Dim i As Long
Dim myLength As Integer
Const myArray As String = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"

myLength = Len(myArray)

For i = 1 To 512

myText = Mid(myArray, Int(i / (myLength ^ 3)) + 1, 1)
myText = myText & Mid(myArray, Int(i / (myLength ^ 2)) + 1, 1)
myText = myText & Mid(myArray, Int(i / (myLength ^ 1)) + 1, 1)
myText = myText & Mid(myArray, i Mod myLength + 1, 1)

With Cells(i, 1)
.NumberFormatLocal = "@"
.Value = myText
End With

Next i

End Sub

61:名無しさん@そうだ選挙にいこう
09/10/01 17:51:48
【1 OSの種類         .】 Windows XP P
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 勉強中
【4 VBAでの回答の可否】 可 よろしくお願いします。

VBAで
= Application.WorksheetFunction.Average(Worksheets("sheet1").Range(Cells(1, 3), Cells(10, 3)))
のように average でC1からC10まで求めるやり方ははかりました、

A3、A6、A9、A12 「Cells(1,h*3)」 のような飛び飛びのセルを
average したいのですがどのようにすればよいですか?
教えてください。よろしくお願いします。


62:名無しさん@そうだ選挙にいこう
09/10/01 18:05:22
>61

= Application.WorksheetFunction.Average(Cells(3, 1), Cells(6, 1), Cells(9, 1), Cells(12, 1))

>「Cells(1,h*3)」 のような

無茶言うなよw

63:名無しさん@そうだ選挙にいこう
09/10/01 18:18:31
>>61
変数aとbを用意
fornextでstep3
a = a + cells(a,1)
b = b + 1
でa/b
もしかしたらコレクションを使えるかも知れないけど使え
いかも

64:名無しさん@そうだ選挙にいこう
09/10/01 18:44:17
初心者スレで荒らされたのでこちらでお願いいたします

使用OS  XP
使用ソフトウェア  excel2007

問題点 ピボットテーブルについて
    範囲を指定して合計すると1行目がタイトル扱いになり
    計算に加えてくれません。
    1行目にタイトルを加えるのは複雑で大量になる為できません
    オプション設定のどこを触ったらよいのでしょうか?    


65:名無しさん@そうだ選挙にいこう
09/10/01 20:33:29
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excell 文字 置き換え

A1で計算した答えによって、文字の置き換えをしたいのですが、どうやればいいのかわからないです。
例えば、計算した答えが1だった場合は「りんご」、2だった場合は「バナナ」、3だった場合は…
というような表示をしたいのですが、関数でできるのでしょうか?

66:名無しさん@そうだ選挙にいこう
09/10/01 20:39:34
>65
A1セルには計算式があるんですよね?
では、りんごやバナナなどの文字はどのセルに表示したいんですか?
まさか「A1セルに」ではありませんよね?

67:名無しさん@そうだ選挙にいこう
09/10/01 20:44:07
>>65
=IF(A1=1,"りんご",IF(A1=2,"バナナ",IF(A1=3,"うんこ","ゲロ")))

68:65
09/10/01 20:44:53
>62
説明不足で申し訳ありません。
A1には計算式があり、答えは別のセル(A2とかA3)に表示させたいです。

69:66
09/10/01 20:57:20
>65,68
了解。それから計算結果は何通りくらいあるんですか? 3通りなら>67さんのやり方でいいと思うけど
数十通りとかなったら別のセル範囲に 値 と 表示したい文字列 のリストを作っておいてMATCHと
INDEXで表引きした方がいいと思う。


70:31
09/10/01 21:23:50
>>32
ありが㌧!!
できました。

71:65
09/10/01 21:44:29
>>67
ありがとうございます。IFを使えばよかったんですね。
数通りの場合はこちらを使用します。

>>69
計算結果は2通りから、最大30通りぐらいまであります。
計算結果が多い時はMATCHとINDEXで表引きをすればいいのですか。
使用した事ないので使い方はわからないですが、ググって調べてみます。
ご丁寧にありがとうございました。

72:名無しさん@そうだ選挙にいこう
09/10/01 23:50:13
>>56
EXCEL2003ではGETPIVOTDATAって関数が勝手に入る仕様になって、俺はちょっとうざいと感じた。

下記の方法で、普通の感覚の式が使えるようになるよ。
URLリンク(www11.plala.or.jp)

73:名無しさん@そうだ選挙にいこう
09/10/02 00:04:54
>>65
質問の意図どおりの関数としては
=CHOOSE(A1,"りんご","バナナ","イチゴ","スイカ")
っていうのもある。

まあ、外にテーブル付くって>>69さんのようにするのがいいと思うけど

74:名無しさん@そうだ選挙にいこう
09/10/02 08:52:56
【質問です】
EXCEL2003において、ワイルドカードが使える(使えない)代表的な関数一覧・・・ってどこかにありますか?
ぐぐったのですが、よく分からない・・・
もちろん、個別関数において「使える」「使えない」というのは調べられるのですが、一覧があると分かりやすい・・・と思って。

75:名無しさん@そうだ選挙にいこう
09/10/02 09:54:53
>>74
使いたい関数ごとに調べるほうが良いと思うよ
URLリンク(www.eurus.dti.ne.jp)
「ワイルドカードが使える」と書いてない限り、使えないと思ったほうが良いかも



76:名無しさん@そうだ選挙にいこう
09/10/02 11:06:18
質問です
エクセル2000から2007に変更したのですが、セルの塗りつぶしの
標準色セットが変わってしまっています
今までと同じ色で塗りつぶしたいのに、同じ色を探すだけで時間を取られます

2000と同じ標準色パレットを使用したいのですが、そのようなことはできますか?

77:名無しさん@そうだ選挙にいこう
09/10/02 11:59:47
>>76
こういうのがあるよ
URLリンク(fnya.cocolog-nifty.com)

78:58
09/10/02 12:42:24
>>60
回答ありがとうございます

1、実行してみましたが、A1から下に向かい連番がふれられていくだけです
前回のVBAの何処かに追加するのですか?

2、連番を入れるセルは何処でしていすれば良いでしょうか?

>For i = 1 To 512
ここが開始と終了ですね?


79:名無しさん@そうだ選挙にいこう
09/10/02 13:22:03
>>77
ありがとうございます
ちょっと操作感は違いますが、以前と同じ色を入力できるようになりました

他にも挿入した図形が印刷したらシャギシャギになってたり
2007って2000や2003との互換性があまりないのでしょうか・・・

80:名無しさん@そうだ選挙にいこう
09/10/02 13:28:16
>>79
ワードもエクセルも2007から内部構造が完全に変わった。xlsxファイルの拡張子をzipに変えてみるとわかるよ。
図形やグラフは互換性がとても低い。印刷するとずれたり大きさが変わったりする。

81:名無しさん@そうだ選挙にいこう
09/10/02 14:28:13
>>80
なるほど・・・厄介ですね
周りがまだ2000~2003だらけなので、戻した方がよさそうですね

82:名無しさん@そうだ選挙にいこう
09/10/02 14:38:47
>78

それくらい応用してくれ。

83:名無しさん@そうだ選挙にいこう
09/10/02 17:47:48
>>58 >>78

暇だったから作ってみた

Option Explicit

Const cBase As String = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ"
Dim BVCol As Collection

Sub 連番()
Dim lX As Long, lR As Long, lC As Long, st As Long, en As Long

Set BVCol = New Collection
For lX = 0 To Len(cBase)
BVCol.Add lX, Mid(cBase, lX + 1, 1)
Next lX

st = CValIndex("0000") ' 開始番号を「""」の中に記入
en = CValIndex("00FZ") ' 終了番号を「""」の中に記入
lR = 0
lC = 0
With Range("A1")
For lX = st To en
With .Offset(lR, lC)
.NumberFormatLocal = "@"
.Value = CTxtIndex(lX)
End With
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
lR = lR + 1 ' 行方向に書き込む場合、コメントブロック解除して
' lC = lC + 1 ' 列方向に書き込む場合、コメントブロック解除して

84:名無しさん@そうだ選挙にいこう
09/10/02 17:49:09
>>83 の続き

' lC = lC + 1 ' 列方向に書き込む場合、コメントブロック解除して
Next lX
End With
End Sub

' 引数[index]で指定した数値を、[BVCol]で定義した文字列に変換する
Private Function CTxtIndex(ByVal index As Long) As String
Dim lX As Long, vT As Variant, tTxt As String, cTmp As Collection

Set cTmp = New Collection
lX = index
Do
cTmp.Add lX Mod (BVCol.Count - 1)
lX = Fix(lX / (BVCol.Count - 1))
Loop Until lX <= 0

For Each vT In cTmp
tTxt = Mid(cBase, vT + 1, 1) & tTxt
Next vT

If Len(tTxt) > 4 Then
tTxt = Right(tTxt, 4)
Else
Do Until Len(tTxt) >= 4
tTxt = "0" & tTxt
Loop
End If
CTxtIndex = tTxt

85:名無しさん@そうだ選挙にいこう
09/10/02 17:50:08
>>84 の続き

End Function

' 引数[txt]で指定した文字列を、[BVCol]で定義した文字列で数値に変換する
Private Function CValIndex(ByVal txt As String) As Long
Dim lX As Long, lX2 As Long, lX3 As Long, stlX() As Long, stTmp As Long

ReDim stlX(1 To Len(txt))

txt = StrConv(txt, vbUpperCase)
For lX = 1 To Len(txt)
stlX(lX) = BVCol(Mid(txt, lX, 1))
Next lX

lX2 = UBound(stlX, 1) - 1
For lX = LBound(stlX, 1) To UBound(stlX, 1)
If lX2 < 1 Then
stTmp = stTmp + stlX(lX)
Else
stTmp = stTmp + (stlX(lX) * ((BVCol.Count - 1) ^ lX2))
End If
lX2 = lX2 - 1
Next lX
CValIndex = stTmp
End Function

86:名無しさん@そうだ選挙にいこう
09/10/02 17:53:49
>>83-85 のコードを
同じ標準モジュールに順番にコピペすればOKだから

87:58
09/10/02 19:26:08
>>82
すみません、コピペしかできません

>>82-85
ありがとうございました、明日試してみます

88:名無しさん@そうだ選挙にいこう
09/10/02 20:37:48
こんばんは。質問です。よろしくお願いします。
エクセル2003です。VBA

VBAで、 
  A1:A100 で "月" と表示のあるもの    かつ
  range(cells(10,h*3),cells(100,h*3)) で0より大きいものを

  平均したいのですが、、、

sub k()

if  If Range("A1:A100") = "月" Then

この先がわかりません。教えてください。お願いします。
”~かつ~”のVBAでの表現法がわかりません。
 



89:名無しさん@そうだ選挙にいこう
09/10/02 20:41:37
セルの中の文の特定の部分だけ塗りつぶしをかける方法はありませんか?

Excel2007です。


90:名無しさん@そうだ選挙にいこう
09/10/02 22:09:12
質問です、お願いします

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 文字列 自動で

商品の仕入れ履歴をエクセルで記録しています。
元々、なにかしらの準備をしておくことで
品目コードから、商品名を一つ右隣のセルに自動呼び出しすることは可能でしょうか?
(例)  コード   商品名    一箱収容数
    12512575  ○○○○     ▲▲▲
上の○と▲が自動で入力できるようなシートを作れれば嬉しいです。



91:名無しさん@そうだ選挙にいこう
09/10/02 22:10:00
会社で使ってるファイルですが、=VLOOKUP(N8, $A:$FI, 3) と書いてありました。
この $A:$FI は、どういう意味でしょうか?
A1:FI20 なら分るんですが・・・

92:名無しさん@そうだ選挙にいこう
09/10/02 22:21:58
>>91
A列からFI列を選択している。
おいらも行数が不定の場合はこうするよ

93:名無しさん@そうだ選挙にいこう
09/10/02 23:21:23
>88
VBA質問相談所にも似たよう質問してませんか?で、何か条件が増えたような。

セルひとつづつ条件をチェックしていくしかないと思うけど。
まず、処理対象のセル範囲があやふや。
A1:A100の条件があるかと思うとrange(cells(10,h*3),cells(100,h*3))ということで10:100の範囲になってるし。
hの値が1から始まるならC、F・・・IU列(255列目 h=85)まであるんですか?
VBA質問相談所の方(レス№15)を見ると
>A3、A6、A9、A12 「Cells(1,h*3)」 のような飛び飛びのセルを average したい
ってあるけど。ひょっとして10列目~100列目ってこと?
VBEで CELLS( まで入力したら行と列の順序がわかりますよ。

94:58
09/10/03 11:11:56
>>83
83・84・85の順番に張り付けて実行しましたが、A1から下に向かって連番が
振られていくだけで、印刷は出来ませんでした

95:名無しさん@そうだ選挙にいこう
09/10/03 11:15:06
こんにちは。
エクセル2007って安いお店でいくら位でかえますか?

96:83じゃないよ
09/10/03 11:19:42
>83の
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
の行は有効に('をはずす)してますよね?

97:58
09/10/03 11:38:59
>>96
レスありがとうございます
(' )を削除して実行した結果、印刷はするのですが
A1に連番の指定した値がでて印刷→A2に次の連番が出てきて印刷になってしまいます
・・は指定したセルにだけ、違った連番が現れる毎に印刷にしたいです

ちなみにセルを指定する場合は
>With Range("A1")
のA1を変更すればいいんですよね?


98:名無しさん@そうだ選挙にいこう
09/10/03 11:40:10
>>95
これぐらい
URLリンク(kakaku.com)

99:RK
09/10/03 11:46:41
【1 OSの種類         .】 Windows Vista
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 入力規則 VBA

例えばマスタとしてSheet2のA2以降に番号,B2以降に氏,D2以降に単価がある時
Sheet1のB6に入力規則を設定して、そのリスト選択で
Sheet1のB6に氏,C6に名,D6に時給を表示させることはできますか?
関数ではなくVBAでお願いします。


100:96
09/10/03 12:29:42
>97
>83の
lR = lR + 1 ' 行方向に書き込む場合、コメントブロック解除して
をそのまま生かしているのなら、行方向にずれます。出力先固定ならば、コメント化すること。

出力セル位置(基準位置)の指定は >97 のとおりです。

101:58
09/10/03 12:39:45
>>96
コメント化とはどうすればよいですか?

102:名無しさん@そうだ選挙にいこう
09/10/03 12:41:45
>>101
'

103:名無しさん@そうだ選挙にいこう
09/10/03 12:49:01
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 可
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 ピボット ゼロ 非表示

ピボットテーブルで、値がゼロのものは項目ごと表示させない方法はありますか?
ピボットテーブルの上からフィルターは使用したくないので他の方法があれば教えてください。

104:名無しさん@そうだ選挙にいこう
09/10/03 13:23:02
>>103
少しだけ手作業してもいいなら、グループ化という方法がある。
まず、集計値でソートしておいて値ゼロを一ヶ所に集めて、
その項目を全部グループ化
そしてそのグループを非表示にする。

105:83です
09/10/03 14:00:50
>>58
テンプレの3・4見てなかったよゴメン

暇だから作るけど
してほしい動作をもう少し詳しく

>>58のコード通りなら
セルG12に番号を入れる→印刷、でいいのか?

それと、違った連番が現れる毎に印刷したいって
連番の範囲を指定するときに、重複する範囲を指定する場合があるってこと?

106:名無しさん@そうだ選挙にいこう
09/10/03 15:47:05
【1 OSの種類       .】 Windows XP Home
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか    .】 少々
【4 VBAでの回答の可否 】 可
【5 検索キーワード    】 任意の行数の挿入

下記VBA 「25行目から最初の上方向の空白行を選択」のつもり

Sub 空白行選択()

Const FirstRow = 25
Const LastRow = 2
Dim MyRow As Long

MyRow = FirstRow
Do Until Cells(MyRow, 2) = ""
MyRow = MyRow - 1
If MyRow < LastRow Then Exit Sub
Loop

Rows(MyRow & ":" & MyRow).Select
End Sub

ここまでは何とかできたのですが(合ってますよね?)
ここに、"25-(上記で検索した最初の空白行の行数)"の空白行をを挿入したいのですが、
どうすればいいのでしょう?
※上記で検索した最初の空白行の行数が 18であれば 25-18 = 7 行を挿入

よろしくお願いします。

107:離島のサンデーPG
09/10/03 17:23:09
>>106
とにかくデータ行の下に25行の空白行を設けたいってことであってるのかな?

108:106にあらず
09/10/03 17:57:29
横から失礼
>106さんがしたいのは、
25行目から上方向に検査を行い、最初に見つけた(B列の)空白セルのある行から25行目までに空白行を挿入したい
ということだと思います。
例えば、B25セルが空白だった場合は 25-25=0 で空白行の挿入は行われず、
    B24セルが空白だった場合は 25-24=1 で1行挿入する という具合。

109:名無しさん@そうだ選挙にいこう
09/10/03 18:12:55
106です。

>>107さん 108さん ありがとうございます。
すいません。説明が言葉足らずでした。

シートには、2行目からN行目までデータが入力されています。
途中、不規則に空白行があります。

空白行から次の空白行までのデーターが、印刷時複数のシートに分割されないように
というのがそもそもの意図です。1シートのデーター入力行数が25です。

例 22行目 データー有り  23行目 空白行    24行目 データー有り
  25行目 データー有り  26行目 データー有り 27行目 空白行

  23行目(25行目から上方向の最初の空白行)に 25-23=2 行の空白行
  を挿入することによって、1枚目のシートは22行目までデーター有り、23~25
  行目は空白行。2枚目のシートは(行挿入する前の)24行目から始まる。
  
意図したことは、上記のようなことです。よろしくお願いします。


110:108
09/10/03 18:31:46
>109
>印刷時複数のシートに分割されないように
複数のページに分割されないようにして ということですね。

改ページを設定する方法じゃダメ? 行挿入したら計算式に影響ありませんか?(計算式があるのか知らないけど)

111:名無しさん@そうだ選挙にいこう
09/10/03 18:45:06
106です。
>>108さん
「複数のシート」ではなく「複数のページ」でした。重ね重ねすいません。

「改ページを設定する」ってのは分かりませんです。そういう方法も
あるのでしょうか?

計算式の参照は行方向だけなので、行挿入しても問題ないと思います。


112:108
09/10/03 20:23:06
>111
手作業での改ページはわかりますね?(メニュー-挿入-改ページ)
マクロの自動記録をしてみたら、次のようなコードができました。
※12行目を選択して改ページしたときの内容です。(当方はExcel2003です)

Rows("12:12").Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Range("A12").Select
こういうこともできるということで。

113:離島のサンデーPG
09/10/03 20:23:29
>>106
連続データが30行(B2:B31まで)あったらどうすんのかな?

114:離島のサンデーPG
09/10/03 20:29:57
> 1シートのデーター入力行数が25です。
あ、ごめん。よく読んでナカッタヨ。

115:名無しさん@そうだ選挙にいこう
09/10/03 21:22:29
106です。
皆様 色々なコメント、ありがとうございます。私の質問自体に、誤りとあいまいな点がありました。
すいませんです。質問自体を訂正・整理して、もう一度UPします。
下記VBA 「25行目から最初の上方向の空白行を選択」のつもり

Sub 空白行選択()

Const FirstRow = 25
Const LastRow = 2
Dim MyRow As Long

MyRow = FirstRow
Do Until Cells(MyRow, 2) = ""
MyRow = MyRow - 1
If MyRow < LastRow Then Exit Sub
Loop

Rows(MyRow & ":" & MyRow).Select
End Sub

ここまでは何とかできたのですが(合ってますよね?)ここに、"25-(上記で検索した最初の空白行の行数)"
の空白行をを挿入したいのですが、 どうすればいいのでしょう?
※上記で検索した最初の空白行の行数が 18であれば 25-18 = 7 行を挿入

116:名無しさん@そうだ選挙にいこう
09/10/03 21:23:37
シートには、2行目からN行目までデータが入力されています。 途中、不規則に空白行があります。
空白行から次の空白行までのデーターが、印刷時複数のページに分割されないように
というのがそもそもの意図です。1ページのデーター入力行数が25です。
例 22行目 データー有り  23行目 空白行    24行目 データー有り
  25行目 データー有り  26行目 データー有り 27行目 空白行

  23行目(25行目から上方向の最初の空白行)に 25-23=2(行)の空白行
  を挿入することによって、1枚目のぺージは22行目までデーター有り、23~25
  行目は空白行。2枚目のページは(行挿入する前の)24行目から始まる。
意図したことは、上記のようなことです。よろしくお願いします。

>>108さん    手作業の改ページ

<12行目を選択して改ページしたときの内容です。(当方はExcel2003です)

Rows("12:12").Select
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell
Range("A12").Select >

12行目を選択の代わりに、Rows(MyRow & ":" & MyRow).Select とすればいいと言うことでしょうか?


117:名無しさん@そうだ選挙にいこう
09/10/03 21:26:19
↑ すいません 106です。115の続きです。

118:108
09/10/03 21:43:40
>116
12行目だけの 1行挿入 ならそうですが、106さんがしたいのは MyRow行から25行(こっちは固定)まで
の行挿入ではありませんか?
だから、
× Rows(MyRow & ":" & MyRow).Select
○ Rows(MyRow & ":" & 25).Select かと思う。
ただ、これだと25行目が空白だと25:25の1行挿入になってしまい、
"25-(上記で検索した最初の空白行の行数)" の空白行を挿入 と矛盾する(25-25=0で行挿入なし)。
検査は24行目から(上記コードもRows(MyRow & ":" & 24).Select)ではないのかな?

119:91
09/10/03 21:45:50
>>92
ご回答ありがとうございました。

120:名無しさん@そうだ選挙にいこう
09/10/03 21:50:58
>>104
おお、そういう方法もあるのか。
ありがとう

121:49(再度質問)
09/10/03 22:27:34
【1 OSの種類         】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 EXCEL 外部プログラム起動

Excel 2007のハイパーリンクで、外部プログラムを起動していますが、
この外部プログラムに引数を渡したいと思っています。その引数の指定方法を教えていただけないでしょうか?

**.exe *** ***

と、スペースで引数を指定すると、" "が"%20"に変換されてしまい、うまく指定できません。
スペースをうまく指定する方法を教えてください。

宜しくお願いします。

122:名無しさん@そうだ選挙にいこう
09/10/03 22:47:45
エクセルで確率を計算したいのですが、
20%の当たりを、5回連続ではずす確率は?
みたいな問題に対する式とかありますでしょうか。

123:名無しさん@そうだ選挙にいこう
09/10/03 22:52:29
>122
20%の当たり なら 80%の外れ
5回連続で外れ なら 80%の5乗 でいいんじゃないですか?

124:名無しさん@そうだ選挙にいこう
09/10/03 23:00:53
>>123
統計関数、の所を探していて混乱してました。
普通の計算ですね・・
ありがとうございます。


125:名無しさん@そうだ選挙にいこう
09/10/03 23:05:16
宿題させんな


126:名無しさん@そうだ選挙にいこう
09/10/03 23:47:26
>>106
1シートのデータ行数が25で固定なら
最初から印刷範囲を設定しておけばいいのでは?
また、改ページが自動で設定されるのがイヤなら
印刷プレビュー → 設定 → ページ設定の次のページ数に合わせて印刷で
横と縦をそれぞれ1に設定すればいい

それともこうゆう事?
・ある列(例えばA列)をチェックして
・空白行があればそこで区切り25行になるようにする
・それを2行目からN行目まで行うと
・1シートのデータ入力数じゃなく、1改ページ当りのデータ数が25

127:あ
09/10/04 00:25:12
計算で例えばA1から順に1 10 100 1000ってなってて1と10の差(9) 10と100の差(90) 100と1000(900)の差それぞれのを一編に出す方法教えて下さい またこの計算が出来る関数はありますか??

128:名無しさん@そうだ選挙にいこう
09/10/04 00:31:02
宿題させんな

129:怐­怐
09/10/04 01:18:26
>>127
-を使うとよい

130:あ
09/10/04 02:27:33
手順を教えてもらえません??(>_<。)

131:名無しさん@そうだ選挙にいこう
09/10/04 02:37:42
B2に=A3-A2ていれて
下にフィルコピー

132:名無しさん@そうだ選挙にいこう
09/10/04 10:37:24
106です。

>>118 ありがとうございます。
改ページはうまく行くのですが、印刷した時にデーターのある行までしか印刷できません。
最後の25行目まで(例えデーターが空白であっても)、罫線の枠組みだけでも印刷
に反映したいのですが・・・。

>>126さん ありがとうございます。
1シートのデーター行数は1~N(多分100ぐらいまで)です。
シートには、2行目からN行目までデータが入力されています。 途中、不規則に空白行があります。
空白行から次の空白行までのデーターが、印刷時複数のページに分割されないように
というのがそもそもの意図です。1ページのデーター入力行数が25です。
例 22行目 データー有り  23行目 空白行    24行目 データー有り
  25行目 データー有り  26行目 データー有り 27行目 空白行

  23行目(25行目から上方向の最初の空白行)に 25-23=2(行)の空白行
  を挿入することによって、1枚目のぺージは22行目までデーター有り、23~25
  行目は空白行。2枚目のページは(行挿入する前の)24行目から始まる。

よろしくお願いします。

133:118
09/10/04 11:17:28
>132
手作業(もしくはVBA)での改ページしていませんか?
表示形式を通常から「改ページプレビュー」にしてみたらいいです。
改ページの解除はできますか?
それから、行挿入した部分は罫線はどうなってますか? 画面上で表示されていますか?


134:>>126
09/10/04 12:43:31
>>132
印刷範囲は25行目で固定なの?

>例 22行目 データー有り  23行目 空白行    24行目 データー有り
>  25行目 データー有り  26行目 データー有り 27行目 空白行
この例だと、2枚目のページ(行挿入前の24行目)以降は印刷しないの?



135:名無しさん@そうだ選挙にいこう
09/10/04 15:14:22
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 履歴書 作成

Excelで就職用の履歴書を作ろうとしているのですが、
ネット上でダウンロードできるものではなく、自分でそういったものを作りたいのです。
そういった表を作る上での丁寧な解説などがのったサイトはありませんか?

136:名無しさん@そうだ選挙にいこう
09/10/04 15:16:46
就職できるかどうかはそこからすでにはじまってるんだよ

137:135 ◆7M9CriKW0c
09/10/04 15:19:17
>>136
いやまあ、そういわれてしまうとそうなんですが…

一応、基本操作はマスターしています。
セルの結合とかやればうまくいくのかな、という気はするのですが。

138:名無しさん@そうだ選挙にいこう
09/10/04 15:23:34
>>137
マスターしてるんならできるでしょうに
落ちてる奴改変すりゃすぐできるでしょ

139:135 ◆7M9CriKW0c
09/10/04 15:25:52
>>138
うーむ…それもそうですね、
これも一つの勉強と思って頑張ってみます。
ありがとうございました。

140:名無しさん@そうだ選挙にいこう
09/10/04 15:30:55
・いちから自分で作成できるかどうか
・ネットでテンプレートを検索して応用できるかどうか
・知人につくらせるだけの人脈があるかどうか

どれも無理なら就職は無理よ

141:135 ◆7M9CriKW0c
09/10/04 15:45:37
今、手持ちの履歴書(PDF等ではなく実際の紙)
を参考に作成していますが、なんとか作れそうです。
背中を押してくれてありがとうございました。就職に向けて頑張ります。

142:名無しさん@そうだ選挙にいこう
09/10/04 16:10:58
そういうのはワードで作れよ

143:名無しさん@そうだ選挙にいこう
09/10/04 17:16:14
確かに・・・
エクセルよりはワードで作った方が自分の勉強になるよ
自分はワードだとどこかで爆発しそうだけど

144:名無しさん@そうだ選挙にいこう
09/10/04 17:29:15
昨日隣のおばちゃんが10行くらいの文章Excelで作ってたわw

145:名無しさん@そうだ選挙にいこう
09/10/04 20:54:29
>>143
ワードなんて別に勉強してまで使うもんじゃないでしょ。
ただのワープロだぞ。


146:名無しさん@そうだ選挙にいこう
09/10/04 21:11:14
エクセル>ワードだな
大抵のものはエクセルで作ってるお

147:名無しさん@そうだ選挙にいこう
09/10/04 21:19:15
会社ではワードはある程度使えないと、顰蹙なもんで・・・
自分もエクセルの方が楽だけどさ。

148:名無しさん@そうだ選挙にいこう
09/10/04 21:23:03
>>146
>>147
あほか。文書作成ならワード>エクセルだろ。
常識。

149:名無しさん@そうだ選挙にいこう
09/10/04 21:30:21
俺もエクセル派。エクセルで作る方が早いから
あと複数文書を1ファイルにまとめられるのもいい
数字やグラフが入るとエクセル必須だしな。
よくわからないけど団塊のおじさんは妙にワード使うのが上手い傾向がある
エクセルは全く使えないんだけどw


150:58
09/10/04 21:32:44
>>105
親切な応対ありがとうございます
会社の伝票を会社のプリンターで発行したいのですが
以前に、まとめて500枚くらい印刷してしまうと、プリンターが、正常に動かなくなったことがありましたので・・
それと今回は、取引会社(VBA自体知らない人たち)にも手伝って貰うために、連番の範囲を指定した
ファイルを渡して印刷してもらう事にしました

詳しい動作
1、セル「G12」に連番を書き込み、異なる連番が現れる都度印刷される
2、範囲は 1TO 50 みたいに指定できたら楽です
3、伝票1枚に1つの連番が入り、重複する連番は指定しません

追加できたら
1、連番の先頭に-(ハイフン)を入れられますか?
2、数字→アルファベットの後に「#$%&\」等の記号も追加することは可能ですか?

151:名無しさん@そうだ選挙にいこう
09/10/04 21:36:37
>>149
例えば5行の文章で2行目を修正したい時はどうするの?

152:名無しさん@そうだ選挙にいこう
09/10/04 21:44:36
>150
追加の部分は セルの書式-ユーザー定義で好きなようにできますよ。

G12セルを選択した状態で 書式-セル-表示形式 で ユーザー定義 を選び、種類(T):の欄に
"!#$%&-"@
って指定してみてください。G12セルの内容の前に !#$%&- が付加されます。


153:58
09/10/04 21:55:14
>>152
ハイフンの件はわかりました
!#$%&は
123456789ABCDEFGHJKLMNPQRSTUVWXYZ#$%&\
と言う感じで桁数を増やしたいと言う意味です、
(すみません言葉足らずでした)

154:105
09/10/04 22:01:51
>>150
>2、範囲は 1TO 50 みたいに指定できたら楽です
これは、1~50て指定したら0001~001Gてなるようにて事?
どっちか決めてもらった方が作りやすい

>連番の先頭に-(ハイフン)を入れられますか?
>数字→アルファベットの後に「#$%&\」等の記号も追加することは可能ですか?

可能か不可能かでいえば可能だよ
追加する記号が固定なら簡単だし、変化するならその条件が判らないと無理

155:58
09/10/04 22:14:33
>>105
レスありがとうございます
1~50と設定したら
0000~001Gがでる様にしてください。

先頭の「-(ハイフン)」もお願いします。

「#$%&\」の4つの記号もお願いします。




156:名無しさん@そうだ選挙にいこう
09/10/04 22:31:05
なんなの?この人↑

157:58
09/10/04 22:51:40
>>156
何度もおじゃましてすみません
自分の中でも仕様が上手くまとまっていなくて
ご迷惑をおかけします

158:名無しさん@そうだ選挙にいこう
09/10/04 23:32:23
↑誰も相手にすんな。

159:名無しさん@そうだ選挙にいこう
09/10/04 23:41:32
105がやってくれるんならいいんじゃないか?
俺はゴメンだが

160:名無しさん@そうだ選挙にいこう
09/10/04 23:41:46
106です。
>>133 >>134 さん ありがとうございます。皆様のアドバイスを参考に、色々やってみた結果
下記のVBAで、何とかなりそうです。

Sub 空白行選択()

Const FirstRow = 25
Const LastRow = 2
Dim MyRow As Long

MyRow = FirstRow
Do Until Cells(MyRow, 2) = ""
MyRow = MyRow - 1
If MyRow < LastRow Then Exit Sub
Loop

If MyRow = 25 Then
Range("A26").Select

Else
Rows(MyRow & ":24").Select
Selection.Insert Shift:=xlDown
Range("A26").Select

End If
End Sub

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

161:105
09/10/05 00:36:37
>>155 できたよ
Sub 連番2()
Dim lX As Long, sTmp As String, st As Long, en As Long, isChekOK As Boolean

Set BVCol = New Collection
For lX = 0 To Len(cBase)
BVCol.Add lX, Mid(cBase, lX + 1, 1)
Next lX

isChekOK = False
Do
Do
sTmp = StrConv(InputBox("連番の開始する数値を入力してください", "開始値の入力"), vbLowerCase)
If sTmp = "" Then
If vbNo = MsgBox("数値が入力されていません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
ElseIf Not IsNumeric(sTmp) Then
If vbNo = MsgBox("入力された値が数値として認識できません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
End If
Loop While sTmp = ""
st = CLng(sTmp)


162:105
09/10/05 00:38:02
>>161 の続き

Do
sTmp = StrConv(InputBox("連番の終了する数値を入力してください", "終了値の入力"), vbLowerCase)
If sTmp = "" Then
If vbNo = MsgBox("数値が入力されていません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
ElseIf Not IsNumeric(sTmp) Then
If vbNo = MsgBox("入力された値が数値として認識できません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
End If
Loop While sTmp = ""
en = CLng(sTmp)

If st > en Then
If vbNo = MsgBox("開始値より終了値の値が小さい場合の連番は作成できません" & vbCrLf & _
"再入力しますか?", vbYesNo + vbInformation, "確認") Then
Set BVCol = Nothing
Exit Sub
End If
Else
isChekOK = True
End If
Loop Until isChekOK


163:105
09/10/05 00:40:28
>>162 の続き

With Range(cIDCell)
For lX = st To en
.NumberFormatLocal = "@"
.Value = CTxtIndex(lX)
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
DoEvents
Next lX
End With
End Sub

' 引数[index]で指定した数値を、[BVCol]で定義した文字列に変換する
Private Function CTxtIndex(ByVal index As Long) As String
Dim lX As Long, vT As Variant, tTxt As String, cTmp As Collection

Set cTmp = New Collection
lX = index

164:105
09/10/05 00:42:31
>>163 の続き

Do
cTmp.Add lX Mod (BVCol.Count - 1)
lX = Fix(lX / (BVCol.Count - 1))
Loop Until lX <= 0

For Each vT In cTmp
tTxt = Mid(cBase, vT + 1, 1) & tTxt
Next vT

If Len(tTxt) > cBaseN Then
tTxt = Right(tTxt, cBaseN)
Else
Do Until Len(tTxt) >= cBaseN
tTxt = "0" & tTxt
Loop
End If
CTxtIndex = cTopID & tTxt
End Function

165:105
09/10/05 00:45:12
>>161-164
のコードを新しい標準モジュールにコピペしてくれ

166:105
09/10/05 01:43:21
これを忘れてた
↓のコードの後に>>161-164をコピペしてくれ

Option Explicit
'↓連番を入力するセルアドレス
Private Const cIDCell As String = "G12"
'↓連番の先頭に付け足す文字列
Private Const cTopID As String = "-"
'↓変換に使用する文字列リスト
Private Const cBase As String = "0123456789ABCDEFGHJKLMNPQRSTUVWXYZ#$%&\"
'↓連番の桁数[0000]なら4
Private Const cBaseN As Long = 4
Private BVCol As Collection

167:離島のサンデーPG
09/10/05 02:29:32
>>160
解決したようだが、別解として。
Sub 空白行選択02()
Dim MyCnt As Long
For MyCnt = 25 To 2 Step -1
If Cells(MyCnt, 2).Value = "" Then
If MyCnt = 25 Then Exit For
Rows(MyCnt & ":24").Insert Shift:=xlDown
Exit For
End If
Next MyCnt
Range("A26").Select
End Sub

168:58
09/10/05 09:06:51
>>105
ありがとうございます、無事に印刷ができました

169:名無しさん@そうだ選挙にいこう
09/10/05 10:12:35
取引会社に >161~166 のマクロを入れて渡すのは
どうかと思うけどなあ、他人事だからどうでもいいけど。

170:名無しさん@そうだ選挙にいこう
09/10/05 12:31:23
>58 解決したようだけど一応
Sub hoge()
  Dim Ary39(39) '配列に対応文字格納
  For i = 0 To 9: Ary39(i) = Chr(i + 48): Next
  For i = 10 To 17: Ary39(i) = Chr(i + 55): Next
  For i = 18 To 22: Ary39(i) = Chr(i + 56): Next
  For i = 23 To 33: Ary39(i) = Chr(i + 57): Next
  For i = 34 To 37: Ary39(i) = Chr(i + 1): Next
  Ary39(38) = "\"
  Cells(12, "G").NumberFormatLocal = "@"

  Dim TmpStr, SrcNum, StartNum, EndNum
  StartNum = Cells(1, "A") '開始値がA1にあると仮定
  EndNum = Cells(1, "B") '終了B1と仮定、エラー処理略
  For i = StartNum To EndNum
    TmpStr = "": SrcNum = i
    For j = 1 To 4 '条件により4桁固定
      TmpStr = Ary39(SrcNum Mod 39) & TmpStr
      SrcNum = Int(SrcNum / 39)
    Next j
    Cells(12, "G") = "-" & TmpStr
    ActiveSheet.PrintOut
  Next i
End Sub

171:名無しさん@そうだ選挙にいこう
09/10/05 14:26:39
エクセル2003です

今セルに入っている数字(金額)の表示を、たとえば
1,234,567

1,234 (千円台) や 123 (万円台)
に変更することはできますか?
元の値を弄らずに、表示だけを変更したいのですが・・・

172:名無しさん@そうだ選挙にいこう
09/10/05 14:56:53
質問なのですが、マイクロソフトオフィススペシャリスト講座を
募集しているパソコン教室があるのですが、一ヶ月短期間コース
というのは一体どんなカラクリがあるのでしょうか?
初心者を集めてます。

173:名無しさん@そうだ選挙にいこう
09/10/05 15:39:16
>>171
URLリンク(www.relief.jp)

もしくは excel 表示形式 千円 とかでググってみな

174:名無しさん@そうだ選挙にいこう
09/10/05 15:44:11
>>172
自習

175:名無しさん@そうだ選挙にいこう
09/10/05 17:48:11
>>172
テストの傾向に対して暗記させるだけ
ここの連中でも傾向知らずに受けると落ちると思う

176:名無しさん@そうだ選挙にいこう
09/10/05 17:49:36
一応補足しておくと、それが悪いって言ってるんじゃないよ
ただ正直、ちょっと気に食わないというのはあるがね

177:名無しさん@そうだ選挙にいこう
09/10/05 20:28:18
A1~A100に果物名が入ってるとします。

B列に重複なしに、一意の果物リストをつくる関数を教えて下さい。

178:名無しさん@そうだ選挙にいこう
09/10/05 20:31:58
>>177

一意のリストを作ったらその後どうしたいの?

179:名無しさん@そうだ選挙にいこう
09/10/05 20:35:55
>>178
果物の金額合計

180:名無しさん@そうだ選挙にいこう
09/10/05 20:36:56
>>179

ピボットテーブル知ってる?

181:名無しさん@そうだ選挙にいこう
09/10/05 20:49:47
>>180
知ってる。

182:名無しさん@そうだ選挙にいこう
09/10/05 21:00:55
シートを追加してリネームするマクロなんですが、今月だったら "OCT 09"(OCTは全て大文字) に
するには、???にどう書けばいいですか?

Sheets.Add.Name = ??? & " " & Right(Format(Date, "yyyy"), 2)

183:名無しさん@そうだ選挙にいこう
09/10/05 21:01:35
ピボットテーブルを作れば、一意なリストの作成と金額の合計がいっぺんにできるよ!

184:名無しさん@そうだ選挙にいこう
09/10/05 21:07:44
>>182
俺ならこう書くけど、

Sheets.Add.Name = UCase(Format(Date, "mmm yy"))

どうしてもその式の???を埋めるような方法じゃなきゃだめ?何かの練習問題?

185:182
09/10/05 21:19:26
>>184
練習問題じゃないです。
Oct 09なら出来たので、OCTのとこだけ聞いたつもりでしたが、そちらの方が
スッキリしてていいですね。ありが㌧ございました(ペコッ

186:名無しさん@そうだ選挙にいこう
09/10/06 16:28:16
質問です。

【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 開始位置

保存したファイルを開いたときに
普段なら保存した時のセルから開始されると思うのですが
なぜか違う場所から(シートもセルも)開始されてしまいます。

なぜでしょうか?

187:名無しさん@そうだ選挙にいこう
09/10/06 16:55:41
エクセルについて質問です。お願いいたします。

エクセルファイルが3つあるとします。A、B、Cとします。
それぞれのファイルのあるシートだけコピーして、新しいエクセルファイル
を作成する方法はないでしょうか?

つまり、エクセルファイルAのシート2のみを、新しいエクセルファイルDを作成し
ここにコピーする。エクセルファイルBのシート3のみをエクセルファイルDに、
エクセルファイルCのシート1を、エクセルファイルDへコピーする。

という方法はないでしょうか?
エクセルファイルAを、新しいファイルにコピペすると、セルのサイズなどを
もう一度あわせないといけなくて、非常に不便なんです。セルの形ごと
コピーできればいいんですが。

188:名無しさん@そうだ選挙にいこう
09/10/06 17:11:39
>>187
シート名の所右クリックして出るメニューのコピー使えばいいんじゃね?

189:名無しさん@そうだ選挙にいこう
09/10/06 17:14:41
新規ブックにコピーだな

190:187
09/10/06 17:37:45
簡単にできました
ありがとうございました

191:名無しさん@そうだ選挙にいこう
09/10/06 18:25:56
列幅コピペてのもあるけどね

192:名無しさん@そうだ選挙にいこう
09/10/06 18:32:45
2003、別シートのA1セルの値を参照させたいのですが
どうしたらいいでしょうか

193:名無しさん@そうだ選挙にいこう
09/10/06 18:39:54
>>192
=別シート!A1

194:名無しさん@そうだ選挙にいこう
09/10/06 19:40:33
>>193
おお、できました
ありがとうございます

195:名無しさん@そうだ選挙にいこう
09/10/06 22:39:59
随分低レベルな質問になったな。

196:名無しさん@そうだ選挙にいこう
09/10/06 22:49:41

   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´        
      ○        
       O       
        o  
         。
            ,,,,,,---ー---、、、
          ,.-'";:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ヽ、
        ,,.;;;::;:;:;:;::;;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;!i`ヽ
      /;:;:;:;:;:;:;:;:;:;:;:;:!!!!!!!!!''""":::;!!!!ノヾ;:;:\
     /;:;:;:;:;:;:;:;:;::!!''"           !;:;:;:;:;ヽ        と
     |;:;:;:;:;:;:;:!'"              ヽ;:;:;:;ヽ       思  
     |;:;:;:;i''"                 i!;:;:;:;|       う 
     |;:;:;:;|                  ヾ;:;:;:|       亀 
     |;:;:;:;|    ,,,;;:iii;;;;;    ,.-==--、. `!;:;|ヽ      井   
      〉;:;:| ,.-''" ̄ ̄ ̄`ヽ⌒|  --。、-、 ヽ-`' |      で 
     i `u i -‐'"ヾ'"  :: ::!      : |  ノ       あ 
      i   |       ノ   ヾ、___ノ  ::|       っ
      | |  ヽ、__,.-i     i 、    :  :|       た
       | |  :   : '" `~ー~'" ヽ : :   ::|        
       `i   ヾ '    ____  ;:  ;: :|       
        \     -‐'''"~ ̄ ̄ ̄ ̄  ;  ;: :/-、_      
         ヾ: : .   ` " " "    ,./    `ー-、
        ,,,--'\: :          ,. ,.イ
    _,.-‐'"    |`ヾ;:;:ヽ....、 : : :   / !
_,.--‐'"        |  `ー、;:;:;:;:;:;:;:;:;:;:,.-''"  |
            |   `>ー‐<    /
             !  /    ,.'"\  !
             | /~i   /   `/

197:名無しさん@そうだ選挙にいこう
09/10/06 23:00:08
やめろw

198:名無しさん@そうだ選挙にいこう
09/10/07 12:13:42
>>177
猿並みの式なら
=INDEX(A:A,SMALL((MATCH(A$1:A$100&"",A$1:A$100&"",)<>ROW(A$1:A$100))*1000+ROW(A$1:A$100),ROW(A1)))&""
と打ってCtrl + Shift + Enterだったっけか。
ちょっち違うかな?

199:名無しさん@そうだ選挙にいこう
09/10/07 19:50:05
A3セルに10/7と入れたら、B3セルに2009/09/01と表示させるには
どう書けばいいでしょうか?

200:名無しさん@そうだ選挙にいこう
09/10/07 20:07:30
>199
10/7 と 2009/09/01 はどこがどう対応するんでしょうか?
10/7 と入れたら 2009/10/7 なら話はわかるんですが(というか自動的に日付とみなしてこうなる)。

201:名無しさん@そうだ選挙にいこう
09/10/07 20:11:31
>>199
どういう関連性があるんだ?
先月の月はじめなら
=A1-DAY(A1)-DAY(A1-DAY(A1))+1
=DATE(YEAR(A1),MONTH(A1)-1,1)
とかかな?
色々方法はあるだろうな。

202:名無しさん@そうだ選挙にいこう
09/10/07 20:17:54
>>199
単純で良いなら、
B3セル  =IF(A3="10/7","2009/09/01","")

203:202
09/10/07 20:24:19
↑ただしこれはA3セルの書式設定を文字列とかに変えないとダメなようです

204:199
09/10/07 21:05:03
あぁぁ、、、 素直に書けばよかったかもw
=today() なんだけど、先月の1日をyyyy/mm/dd形式で表示させたいんです。

205:199
09/10/07 21:07:51
>>201
=A1-DAY(A1)-DAY(A1-DAY(A1))+1 だと、1 になりました。

=DATE(YEAR(A1),MONTH(A1)-1,1) だと、#NUM! になりました。

206:名無しさん@そうだ選挙にいこう
09/10/07 21:13:45
連投すんません。

yyyy/mm/dd形式 じゃなくて、yy/mmm形式で、09/SEPにする でした。

207:名無しさん@そうだ選挙にいこう
09/10/07 21:18:57
>>205
=DATE(YEAR(A3),MONTH(A3)-1,1)
じゃねーの
A1とA3を間違えてるんだろう

208:199
09/10/07 21:30:36
>>207
できました。

209:名無しさん@そうだ選挙にいこう
09/10/07 21:30:50
別に間違えたわけじゃないよ。
A1で質問するのが普通だからそう書いたまで。
A1をA3に直すことくらい自分で気がつかないのかな。


210:名無しさん@そうだ選挙にいこう
09/10/07 21:35:16
どんな言い訳してもそれは間違いだろw
>A1をA3に直すことくらい自分で気がつかないのかな。
気が付かない初心者なんだろうに
なんで上から目線なの?アホなの?

211:名無しさん@そうだ選挙にいこう
09/10/07 21:39:06
>A3セルに10/7と入れたら、B3セルに

どう読んでもA1には見えんがなwww

212:名無しさん@そうだ選挙にいこう
09/10/07 21:40:07
>>209
最近よく見かける恥の上塗りの人か
大人なら素直に間違いを認めようぜ
誰だって間違いはするんだ
完璧な人間なんて居ないのさ

213:名無しさん@そうだ選挙にいこう
09/10/07 21:48:19
「あっ間違ったゴメン」 とかって書けばすむことなのにw

214:名無しさん@そうだ選挙にいこう
09/10/07 22:31:43
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 cell("address INDIRECT

例えばD20に、
=CELL("address",C10) 
のような式を入れてそのセルには「$C$10」と返してもらっています。

で、MINやMAXの式で範囲の片方をその返してもらった「$C$10」の番地そのものを使い
たいんですがそのままMIN(D20,・・と入力しても$C$10の中味を参照しにいってしまって
うまくできません。

この場合D20の頭に何を付ければ良いですか?

よろしくお願いします。


215:名無しさん@そうだ選挙にいこう
09/10/07 22:58:08
>>214
>$C$10の中味を参照しにいってしまって
の意味がよく分からなかったけど、やりたいことは
=MIN(INDIRECT(D20), 10, 20, 15)
みたいなことかな・・・

216:214
09/10/07 23:25:05
>>215
ありがとうございます、その通りです。
ちょっと勘違いしてました、カンマ使ってて範囲が指定されなくておかしいなと・・orz

無事うまくいきました。

217:名無しさん@そうだ選挙にいこう
09/10/07 23:25:05
まーた偏執狂がいるなw

218:名無しさん@そうだ選挙にいこう
09/10/07 23:32:45
>>199はいくらなんでもネタだろうよ。

219:名無しさん@そうだ選挙にいこう
09/10/07 23:33:34
>>199じゃなくて>>205

220:名無しさん@そうだ選挙にいこう
09/10/07 23:52:52
205はネタじゃないぞ
A3に10/7、B3にその数式を入れてみろ

221:名無しさん@そうだ選挙にいこう
09/10/07 23:56:09
アホでつか?

222:名無しさん@そうだ選挙にいこう
09/10/08 09:54:29
つぎいこ、つぎ。

223:名無しさん@そうだ選挙にいこう
09/10/08 13:44:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 データ順序 変更

積み上げタイプのグラフについての質問です。
データ順序を変更すると、その順序が全ての系列に反映されますが、
これを1系列ごとに変更することって可能でしょうか?
URLリンク(www.aoten.jp)
この頁で言いますと、4月は札幌が一番下、5月は福岡が一番下・・・みたいに
それぞれの月で数量の多い順に並べたいわけです。
可能でしょうか?

224:名無しさん@そうだ選挙にいこう
09/10/08 14:56:06
なんかどっかで見たような質問だな

225:名無しさん@そうだ選挙にいこう
09/10/08 17:49:50
>>223
たぶん、できないと思う

226:名無しさん@そうだ選挙にいこう
09/10/08 20:54:08
【1 OSの種類         .】 Windows xp
【2 Excelのバージョン   】 Excel 2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 時間処理

2009/1/1、1:00



のように日にちと時間が別セルにある時に、
すべての時間を6時間進めるのはどうすれば良いでしょうか?
よろしくお願いします。


227:名無しさん@そうだ選挙にいこう
09/10/08 21:00:23
=A1+6/24

228:名無しさん@そうだ選挙にいこう
09/10/08 21:05:55
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 おk
【5 検索キーワード     】 for each アスタリスク ファイル名 を含む

マクロを書いたブックの他に、”売上”という文字を含むファイル名のブックが
開いてたら動作するのを作ってるんですが、"*売上*" がダメっぽいので
何て書けばいいのか教えてください。

Sub test()
Dim WB, WB1
 For Each WB In Workbooks
  If WB.Name = "*売上*" Then
   WB1 = WB.Name
  End If
 Next

 If WB1 = "" Then
  Exit Sub
 End If
 
End Sub

229:名無しさん@そうだ選挙にいこう
09/10/08 21:12:51
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 貼り付け 参照

シート1にマスターデータみたいに全部のデータが
A        B
JAN     商品名
49067・・・・  まんじゅう



みたいにあって
シート2に 
JAN 
49068・・

みたいにマスターデータ内のJANだけが飛び飛びで並んでるんですけど
JANの隣のセルにマスターデータから商品名を参照して貼り付けるにはどんな関数でどんな数式つかえばいいですか?
JANの隣のセルにに


230:名無しさん@そうだ選挙にいこう
09/10/08 21:19:27
>>226
A1=2009/1/1 ,B1=1:00  という場合、
A2 =IF(DAY(B1)=DAY(B2),A1,A1+1)
B2 =B1+6/24
で下方へコピー

231:名無しさん@そうだ選挙にいこう
09/10/08 22:38:30
>>226
どこかのセルに6:00と打って、コピー、形式を選択して貼り付けから加算でOK

232:名無しさん@そうだ選挙にいこう
09/10/08 22:41:44
なんだ日付と時刻が別セルか。
上は駄目だな。
同じセルに日付と時刻をまとめてから6時間を足すのが簡単だな。

233:227
09/10/08 22:52:00
>.232

俺もそこは気が付かなんだw

>226

別セルで日付の繰り上がりもしたいのか?
簡単だが説明するのがメンドクサイ。

あと本当にそのキーワードで検索したのか?
それでHitしたサイトの解説が分からないの
ならアキラメロン(AA略

234:名無しさん@そうだ選挙にいこう
09/10/08 22:57:01
【1 OSの種類         .】 WindowsXP SP2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 重複


2つの列から重複しているデータを抜き出すにはどうしたら良いでしょうか?

例えば、

 A       B
中村俊輔  長谷部誠
中村憲剛  中村俊輔
遠藤保仁  本田圭祐
長谷部誠  今野泰幸
稲本潤一  中沢祐二

とあったら、

「中村俊輔」と「長谷部誠」を抽出する感じです。
フィルタオプションの設定からやってもうまくいきませんでした。
よろしくお願いいたします。

235:228
09/10/08 23:10:19
ググって自己解決しました。

236:名無しさん@そうだ選挙にいこう
09/10/08 23:19:48
>>234
その検索キーワードでググって解決しない理由がわからないのだが。

例えば、
C1=IF(COUNTIF(B:B,A1),ROW(),"")
D1=INDEX(A:A,SMALL(C:C,ROW()))

237:名無しさん@そうだ選挙にいこう
09/10/08 23:35:46
>>226
A1=2009/1/1
B1=1:00
C1=6時間後の日付
D1=6時間後の時刻

としたい場合

C1の数式=A1+B1+"6:00"
D1の数式=A1+B1+"6:00"
C1の表示形式 yyyy/m/d
D1の表示形式 h:mm

238:名無しさん@そうだ選挙にいこう
09/10/09 00:58:31
>>229
Sheet1にマスター、Sheet2のA2に49067とかあるなら、となりのB2に
=VLOOKUP(A2,Sheet1!A:B,2,0)
みたいでどお?

239:名無しさん@そうだ選挙にいこう
09/10/09 01:09:16
>>234
2つの列の項目名を同じにしてから、フィルタオプションの設定

名前 名前
中村俊輔 長谷部誠
中村憲剛 中村俊輔
遠藤保仁 本田圭祐
長谷部誠 今野泰幸
稲本潤一 中沢祐二

リスト範囲 $B$1:$B$6
検索条件範囲 $A$1:$A$6
みたいにすればB列に中村と長谷部が出る。

240:名無しさん@そうだ選挙にいこう
09/10/09 08:01:33
>>239
分ってるとは思うが、それはExcel2002でしか通用しないよ。
しかもデータが少ないときだけだな。

2003とかなら稲本潤一と稲本潤一朗とかで前方一致で不具合が出るから、検索条件範囲のデータを
'=中村俊介
'=中村憲剛
'=遠藤保仁
'=長谷部誠
'=稲本潤一
としないと。

241:名無しさん@そうだ選挙にいこう
09/10/09 08:23:23
>>226に関しては誤差対策無しで大丈夫かなぁ。

242:名無しさん@そうだ選挙にいこう
09/10/09 08:35:30
241だが、時間だけ進めるなら>>230>>237で大丈夫みたいだな。
何時間何分進めるとかなら誤差対策が必要そうだが。

243:名無しさん@そうだ選挙にいこう
09/10/09 08:40:31
>>240
作業列に="="&A2などとして、その作業列を検索条件範囲にすればよさそうだね。

244:名無しさん@そうだ選挙にいこう
09/10/09 10:28:28
>>226
a1+b1-int(b1)+6/24
でいいんじゃないのか

245:名無しさん@そうだ選挙にいこう
09/10/09 13:05:20
>>243
そういうことだね。

246:名無しさん@そうだ選挙にいこう
09/10/09 15:32:14
各列ごとに、同時に複数の列を挿入することはできますか?

247:名無しさん@そうだ選挙にいこう
09/10/09 16:04:19
最近は頭がうまく働かないという人が多いな。

どうも空気中のオゾンの濃度が上昇してるようで、これが原因みたいなんだな。
オゾンの濃度が上昇すると、人間の呼吸機能が害される。人間の呼吸器の機能が
低下すると、体内に取り込まれる酸素の量が減少する。すると脳にまわる酸素が
不足するようになって、脳の機能が低下する。脳の機能が低下すると頭が疲れやすく
なり、文字とかをたくさん読んだり書いたりすることが難しくなってきたりするし、複雑な
思考をすることも難しくなるんだな。
ちなみに一酸化炭素の致死濃度は1500ppmに対し、オゾンの致死濃度は50ppmで、
単純計算でオゾンの毒性は一酸化炭素の30倍強い。
URLリンク(www.showaboss.co.jp)
URLリンク(ja.wikipedia.org)

生活環境基準では0.05ppm(50ppb)が安全基準の上限なんだが、実際にはこの基準を
超える地域というのが最近は結構多い。
URLリンク(www.jamstec.go.jp)

このオゾン濃度が上昇する原因なんだが、最近はバイオ燃料を自動車で使うことが
原因として指摘されたりしている。
URLリンク(tvert.livedoor.biz)
URLリンク(wiredvision.jp)

通常のガソリン・軽油は炭素と水素原子だけで構成されるんだが、バイオ燃料(バイオエタノール)の
場合、酸素原子も燃料に含む。そしてその酸素原子がエンジンが吸入する空気中の酸素分子と
結合してオゾン(O3)になるのが原因ではないかと言われている。

248:名無しさん@そうだ選挙にいこう
09/10/09 16:18:06
>>246
できない

249:名無しさん@そうだ選挙にいこう
09/10/09 19:51:02
>>246
列を挿入するんじゃなくて、並び替え使えば出来る。
作業行に連番振って、その連番を右に必要回数コピーして
その作業行をキーにして列単位で並び変えればOK。
最後に作業行を消せばよい。

250:名無しさん@そうだ選挙にいこう
09/10/09 20:10:22
>>248
>>249
ありがとうございます
解決しました。

251:名無しさん@そうだ選挙にいこう
09/10/09 22:06:00
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 ちょっとだけ
【4 VBAでの回答の可否】 可

以下のようなデータで、2行目がタイトル行になっておりオートフィルタが掛かっています。
オートフィルタでB列から0.0000を抽出、D列が0より大きいものを抽出したとき、DとEの値を
BとCへコピペしたいのですが、3行目しかうまくコピペできません。
マクロでやってますが、どうすればいいでしょうか?

   A     B      C      D      E
3  U$   0.0000   0.0000   0.0175   0.0175
4  U$   0.0000   0.0000   0.0000   0.0000
5  U$   0.0282   0.0282   0.0293   0.0293
6  U$   0.0000   0.0000   0.0155   0.0155
7  U$   0.0135   0.0135   0.0135   0.0135


ちなみに、今はForで全ての行をIfで分岐して条件に合致したらコピペ・・・をやってますが、
データ量が多いため、オートフィルタの方法で試してみたいと思っています。

252:名無しさん@そうだ選挙にいこう
09/10/09 22:06:39
エクセル2007で列を挿入しようとすると、オブジェクトがはみ出しますとか出て、
挿入できないんです。
いままでエクセル2000使ってたから、使いにくくて仕方がありません。
どなたか対処法を知っている方見えましたら教えてください。

253:名無しさん@そうだ選挙にいこう
09/10/09 22:19:20
表のいちばん右の列から右端の列までを選択して削除

254:名無しさん@そうだ選挙にいこう
09/10/10 10:35:14
>>251
それはオートフィルタの仕様っぽい
コピーだと非表示のところがコピーされないため、>>251の通り貼り付けると
B3:C4の位置に貼り付けられる。表示されているセルを上に詰めてコピーされてるのかな
URLリンク(www.moug.net)
を見る限り有効な方法は思いつかない。

強いて言うならコピー貼り付けでなく
range("a1").value=range("b1").value
みたいにすると値を簡単に移せる

後は配列を覚えるといいかも。

255:名無しさん@そうだ選挙にいこう
09/10/10 11:05:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 コピペのみ
【4 VBAでの回答の可否】 可

次のように規則的に3カウントずつ並べていきたいのですがどのようにすればよいでしょうか(´・ω・`)
3個並べて右にずれてまた3個というような繰り返しです。

A1=B1
A2=B2
A3=B3
A4=C1
A5=C2
A6=C3

256:名無しさん@そうだ選挙にいこう
09/10/10 11:14:26
>>255
関数
A1=INDIRECT("r"&MOD((ROW()-1),3)+1&"c"&INT((ROW()-1)/3)+2,0)
下にオートフィル

VBA
Option Explicit
Sub a()
Dim i
For i = 0 To 10
Cells(i + 1, 1) = Cells((i Mod 3) + 1, Int(i / 3) + 2)
Next
End Sub

ピボット
無理w

257:名無しさん@そうだ選挙にいこう
09/10/10 11:24:10
>>256
出来ました!

ありがとうございます(`・ω・´)ゞビシッ!!

258:名無しさん@そうだ選挙にいこう
09/10/10 12:10:09
>>255
前からINDIRECTの好きな先生が住みついてるよなぁ。
=INDEX(B:IV,MOD(ROW()-1,3)+1,INT((ROW()-1)/3)+1)

259:名無しさん@そうだ選挙にいこう
09/10/10 12:49:33
やってること同じじゃないの?

260:名無しさん@そうだ選挙にいこう
09/10/10 13:02:40
>>255
> 次のように規則的に3カウントずつ並べていきたいのですがどのようにすればよいでしょうか(´・ω・`)

本当にやりたいことは3カウントずつ並べることなんだろうか?
もっと上位の概念でやりたいことを質問したほうがいい回答がもらえるよ。
グループ別に集計したいとか、制約を満たす最適解が欲しいとか。


261:名無しさん@そうだ選挙にいこう
09/10/10 14:57:24
またまたINDIRECTを理解できない小僧がキャンキャン吼えてるよ

262:名無しさん@そうだ選挙にいこう
09/10/10 15:10:24
>>255>>258はどう違うの?indirect関数はバグが多いとか?

263:名無しさん@そうだ選挙にいこう
09/10/10 15:35:57
>>260
レスありがとうございます。
本当にやりたいことはちょっと難儀で
似たような3行をひたすら繰り返す形ですね

元データまま

A1=LCLICK 70,230  デスクトップの座標を示している。座標は順番に24通り、24までいったら1に戻る。24通りは作業列に用意
A2=delay 50   常に同じ
A3=send C:\001.txt 002 003と増えていく 制限なし

自分がしたこと
上記3列をコピーして別シートに行と列を入れ替えて貼り付け
オートフィルで右側に必要な分だけコピー
+
>>256さんの関数で1列に並べて完了

出来上がり

LCLICK 70,230
delay 50
send C:\001.txt
LCLICK 78,405
delay 50
send C:\002.txt

300.TXTくらいまで。

こんな感じです(´・ω・`)

264:名無しさん@そうだ選挙にいこう
09/10/10 15:42:27
それは確かキーボードマクロの内容か
まぁそれはいいとして、VBAで↓作った方が早かったね。出来たみたいだしもういいことだけどさ~
A1=LCLICK 70,230  デスクトップの座標を示している。座標は順番に24通り、24までいったら1に戻る。24通りは作業列に用意
A2=delay 50   常に同じ
A3=send C:\001.txt 002 003と増えていく 制限なし

265:名無しさん@そうだ選挙にいこう
09/10/10 16:04:53
>>263
そんなのソート使えば余裕じゃないの?
indirectやrowはデータへのポインタを意識しなければならない手法で低級なテクニックだよ。
まあ解決してるならどうでもいいことだが。


266:名無しさん@そうだ選挙にいこう
09/10/10 16:15:39
>>256>>258
どうみてもやってることは同じです
本当に(

267:名無しさん@そうだ選挙にいこう
09/10/10 18:12:44
>>266
コピーから値貼りつけするのであればどれでもよいが、式を残すのであれば揮発性関数のINDIRECTやOFFSETは使わないのが常識。
まぁ値貼りつけ前提の式だろうけど。

268:名無しさん@そうだ選挙にいこう
09/10/10 18:22:39
>>255はピボットでも出来なくはないわな。

269:離島のサンデーPG
09/10/10 18:28:42
>>251
Sub Macro1()
Dim WS As Worksheet
Dim LastRow As Long, h As Long
Application.ScreenUpdating = False
Set WS = Worksheets("Sheet1")
With WS
LastRow = .Range("$A$65536").End(xlUp).Row
With Range("A3:E" & LastRow)
.AutoFilter Field:=2, Criteria1:="0.0000 "
.AutoFilter Field:=4, Criteria1:=">0.0000", Operator:=xlAnd
End With
h = 1
For Each i In .Columns(1).SpecialCells(xlCellTypeVisible)
If i = "" And i.Row <> 1 Then Exit Sub
If h >= 3 Then
.Range("B" & i.Row).Value = .Range("D" & i.Row).Value
.Range("C" & i.Row).Value = .Range("E" & i.Row).Value
End If
h = h + 1
Next i
End With
Application.ScreenUpdating = True
Set WS = Nothing
End Sub

こんなコードですまん。

270:名無しさん@そうだ選挙にいこう
09/10/10 18:29:13
書き忘れたが行列入れ替えてからピボットな。

271:名無しさん@そうだ選挙にいこう
09/10/10 19:48:37
>>268
たしかに出来るな。
>>256並み駄目w

272:251
09/10/10 23:20:32
>>254
ありがとうございます。
イコールで数値を合わせる方法もあるんですね。
別の機会に応用してみます。

>>269
ありがとうございます。そのまま使えました。
データは会社から持ち出せないので、13日に試してみます。

273:名無しさん@そうだ選挙にいこう
09/10/11 06:36:39
【1 OSの種類         .】 Windows VISTA
【2 Excelのバージョン   】 Excel2003 SP3
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 エクセル タイム 時間管理

エクセルで自転車の走行記録を付けているのですが
走行時間が60分以内の時と 60分以上の時があるのですが

セルの表示を h"時間"mm"分"ss"秒";@
にして 入力を
1時間以上の時 1:20:34とすると 1時間20分34秒と表示されるのですが
1時間以内の時 0:20:34とすると 0時間20分34秒と表示されます

当たり前といえば当たり前ですが 60分以内の時 20分34秒と表示できるようなテクニックは
あるでしょうか ご存じの方お願いします


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