1 :
◆Excel//q4U :
2009/09/27(日) 21:52:39 ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 86
ttp://pc11.2ch.net/test/read.cgi/bsoft/1251490200/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・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 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>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分野の話ではないので、ここでは聞かないでください。
★ 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セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。 以上でテンプレ終わり
>>1 ー6
*-+。・+。-*。+。*
\ 。*゚
∩ *
(・ω・`)
。\ つ
* 丶 _⊃
+。 ∪ ☆
゚+。*。・+。-*。*゚
9 :
名無しさん@そうだ選挙にいこう :2009/09/28(月) 04:08:38
質問です。お願い致します。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel エンター ペーストされる いつのまにかセルをコピーしている状態でエンターを押すと勝手にペーストされるようになってしまいました。 どこで設定を直せば良いのでしょうか?探してみたのですがちょっとわからなかったです。
>>9 それは仕様です
コピーしていると下に、「エンターを押すか・・」と説明でるっしょ
間違えてコピーしたときはESCオスと解除されるよ
11 :
名無しさん@そうだ選挙にいこう :2009/09/28(月) 20:55:51
入力規則リストに連動して、ほかのセルに自動入力ってできる?
12 :
9 :2009/09/28(月) 21:42:37
>>10 ええーそうなんですが。今まで気づかなかった。
コピーして列の一番下のその次に書き込みたくてctr+下のあとリターンで次のセルに行きたいのだけど
リターンすると貼り付けられちゃってめっちゃふべんです。わかりにくくてごめんなさい。
>>12 それだったら、ctr+下のあともう一度↓を押すのが早い
14 :
9 :2009/09/28(月) 22:15:56
ああああー確かにそうですね。気づきませんでした。
カワイイ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 上から順に入力されている数字を上下逆の順にしたいのですが 何かいい方法ありませんか?
>>16 作業列に連番を入れて降順に並べ替え
行数固定ならワークシート関数
VBA
前スレ980ですがDropButtonClickイベントを使ったら、 今度はコンボボックス1をドロップダウンした時にエラーが発生してしまいました。 ドロップダウンリストを非表示にした時のみ起こるイベントがあればいいと思うのですが、 調べても見つかりません… 他に方法はありますでしょうか? ↓前回の質問 >vbaの質問です。 >フォーム上にコンボボックスが2つある状態で、 >コンボボックス1でドロップダウンして値を選択すると、コンボボックス2がドロップダウン状態になるようにしたいのですが、 >下記のコードではドロップダウンしてくれませんでした。(コンボボックス1が既にドロップダウン状態のため?) >何かいい方法はありますでしょうか? > >Private Sub Combobox1_Change() >Combobox2.dropdown >End Sub
>>16 降順・昇順それぞれ専用のボタンがあるよ。(Σ”オートSUM”とグラフウィザード
のボタンの間にあります。)
並び替えたい範囲を選択してそのボタン押せば即変わる。
つか、前スレでつい最近質問&回答あったばかりなんだが。
>>20 データを降順・昇順に並べるのではなく、単に上下逆転したい時はどうすればいいですか?
>21 バカ? を ?ガハ にしたいってこと?
>>19 確かにDropButtonClickでやってみたら
実行時エラー’-2147417848 (800101108)':
オートメーション エラーです。
起動されたオブジェクトはクライアントから切断されました。
て、エラーでたわ
それで、実際どういう動作をさせたいの?
2つ同時にドロップダウンリストを表示させたいんだったら
リストボックスを使ったほうがいいと思うよ
25 :
名無しさん@そうだ選挙にいこう :2009/09/29(火) 11:20:12
曲線のグラフを書きたいのですが 折れ線グラフでちょこちょこ書かないと無理でしょうか?
>25 点の集合でグラフを書くなら、散布図が便利です
27 :
名無しさん@そうだ選挙にいこう :2009/09/29(火) 11:53:04
>>25 それでもかなり面倒そうですね
ワードでも探してみます
ありがとうございます
>>22 > バカ? を ?ガハ にしたいってこと?
質問の内容はそういうことだろ。
つまり
>>20 がバカということ。
また恥かくからそういう言い方はやめておきなって
>>21 エスパーが回答するよ〜
「shift押しながらドラッグしたらどうなん?」
Office2000から2003になりました。 オートフィルしたり、コピペしたりすると小さなボックスが出てきてウザいんですが、 出さなくする方法を教えてください。
32 :
名無しさん@そうだ選挙にいこう :2009/09/29(火) 22:17:12
>>31 ツール>オプション>編集>[貼り付けオプションボタン]を表示するのチェックをはずす
手元に2003が無いのであやふやだが、これだったはず
33 :
19 :2009/09/29(火) 23:22:28
>>23 >>24 回答ありがとうございます
>それで、実際どういう動作をさせたいの?
>2つ同時にドロップダウンリストを表示させたいんだったら
>リストボックスを使ったほうがいいと思うよ
いえ、複数のコンボボックスに順番に値を入力していくのに、
1つ目に値を入力したら2つ目のドロップダウンリストを自動で開く
2つ目に値を入力したら3つ目のドロップダウンリストを自動で開く
…
としたかっただけなのですが、なぜかうまくいきませんでした。
諦めて手動で開くことにします。
>>33 どうもコンボボックスを繋げるとバグがおきやすいみたいだな
ボタンにするか、別のメソッド(動作)を試すといいかもしれない
35 :
名無しさん@そうだ選挙にいこう :2009/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でやりたいのですが。
どうか教えてください。
>>35 ピボットテーブルだとSheet2にダミーデータを入れるしかないのではないか?
SQLだと外部結合というので実現できる。
AccessやSqliteを試してみてもおもしろいよ。
2003だと追加インストールが必要かもしれんけど、データのあるブックとは別のブックから「外部データの取り込み」で Query起動して外部結合できんじゃねーかなそれは
38 :
35 :2009/09/30(水) 01:03:44
早速ありがとうございます。
>>35 さん
申し遅れていました。Sheet2は自動でデータが入るようになっているのです。
(受注システムからデータを読んでいるのだとか)
ですので、Sheet2はいじれないかと・・・
やはり、こういったものはAccessでしょうか。わたしを含め、課内はあまり
Accessに強いものがおらず、ついExcelでなんでもやってしまおうとしてしまいます。
外部結合というのを調べてみます。37さんもありがとうございました。
あす出社しましたら、追加インストールが必要かどうかを含め、まずは検討してみます。
ピボットテーブルをかじり始めたばかりなので、ピボットテーブルで出来るのかと思い
躍起になっておりました。やはり視野が狭いのはいけませんね。
>>38 「ちょっと重い」程度のことなら、余計なことはせずに
がまんして使った方がいいかもしれんぞ
新しいシステムを導入すると必ずトラブルが起こるの法則
40 :
名無しさん@そうだ選挙にいこう :2009/09/30(水) 04:05:37
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 簡単なものなら 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 "シート保護" "ロックされた範囲の選択 再起動" シートを保護する際「ロックされたセル範囲の選択」チェックをオフにし、 ロックされたセルは選択出来ないよう設定したいのですが、エクセルを再起動するとシートの保護はされているのに ロックされた範囲の選択は可能になってしまいます。 複数シートを使って何度も試してみたところ、時々ロックされた範囲を選択出来ないままの場合もありました。 どういうケースでそうなるのか再現は出来ませんでした。 解決方法をご存知でしたら、ご教授をお願い致します。
41 :
40 :2009/09/30(水) 04:24:19
書き忘れた情報を追加します。ごめんなさい。
>>40 の事象は、現在作成中の納品書請求書作成用のbookでのみ起こります。
新規でbookを作成した場合は再起動しても、ロックされたセルは選択出来ないままでした。
納品書請求書作成用のbookでも、新規でシートを追加した場合は大丈夫です。
シート保護のチェックは「ロックされていないセル範囲の選択」のみにチェックを入れています。
知らない間にどこかの設定を変えてしまったのでしょうか。
よろしくお願いします。
42 :
名無しさん@そうだ選挙にいこう :2009/09/30(水) 07:10:20
質問です。 sub k () for i= 1 to 30 〜〜〜〜〜〜 next i for h=1 to 10 〜〜〜〜〜〜〜 next h end sub こうゆう構文ってなりたちますか??(〜〜〜〜はなんでもいいです。) 試してみたのですができませんでした。本にもこのようなものは書いていませんでした。 なにかやり方があるのか知りたくて質問してみました。 エクセル2003です。よろしくお願いします。
>>39 >「ちょっと重い」程度のことなら、余計なことはせずに
>がまんして使った方がいいかもしれんぞ
「ちょっと重い」なんて書いてあったか?
>>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
できるよ
スレチなんだが、だれかVBA質問スレたてて下さい
48 :
名無しさん@そうだ選挙にいこう :2009/09/30(水) 18:51:16
>>44 ありがとうございました。
かなり作業が進みました。感謝です。
Excel 2007の使い方について質問です。 【内容】 Excel 2007のハイパーリンクで、外部プログラムを起動していますが、 この外部プログラムに引数を渡したいと思っています。その引数の指定方法を教えていただけないでしょうか? **.exe *** *** と、スペースで引数を指定すると、" "が"%20"に変換されてしまい、うまく指定できません。 スペースをうまく指定する方法を教えてください。 宜しくお願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 IF関数
作成したブックです。
ttp://www.dotup.org/uploda/www.dotup.org205926.xls.html A2に文字があります。
B2からF2に日付があります。
G2のセルに、「もしB2からF2の日付の内一つでもTODAYなら、G2にA2を表示させる」
という事を行いたいです。
お手数ですがご回答よろしくお願いします。
51 :
50 :2009/10/01(木) 04:52:03
お騒がせしました、自己解決しました。
>>50 "一つでも"ということなら
=IF(COUNTIF(B2:F2,TODAY())>=1,A2,"")
ただ実際範囲内で重複している日付は無さそうだから
=IF(COUNTIF(B2:F2,TODAY())=1,A2,"")
とやってもよさそうだけどね。
orz...
54 :
名無しさん@そうだ選挙にいこう :2009/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 複数商品を何度も何度もコピペしてるので、もう少し効率的にできれば… と思いました。判りづらいところもあるかもしれませんが 何卒ご教示お願い致します。
>>54 できるよ。そのまま式をピボットテーブルの隣に書き足せばいい。
56 :
54 :2009/10/01(木) 09:31:18
>55 ありがとうございます! 質問前に最初やってみたのですができなくて、今やり直してみたらできました! なんでだろう…GETPIVOTDATAってなるから何か特別なことが必要なのかと思ってました。
>>56 前年比をピボットで計算させることもできるよ。
【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
しかし桁数と***の都合で 連番をアルファベットと数字で構成した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枚・・という感じです
>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 :
名無しさん@そうだ選挙にいこう :2009/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 したいのですがどのようにすればよいですか? 教えてください。よろしくお願いします。
>61 = Application.WorksheetFunction.Average(Cells(3, 1), Cells(6, 1), Cells(9, 1), Cells(12, 1)) >「Cells(1,h*3)」 のような 無茶言うなよw
>>61 変数aとbを用意
fornextでstep3
a = a + cells(a,1)
b = b + 1
でa/b
もしかしたらコレクションを使えるかも知れないけど使え
いかも
64 :
名無しさん@そうだ選挙にいこう :2009/10/01(木) 18:44:17
初心者スレで荒らされたのでこちらでお願いいたします 使用OS XP 使用ソフトウェア excel2007 問題点 ピボットテーブルについて 範囲を指定して合計すると1行目がタイトル扱いになり 計算に加えてくれません。 1行目にタイトルを加えるのは複雑で大量になる為できません オプション設定のどこを触ったらよいのでしょうか?
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excell 文字 置き換え A1で計算した答えによって、文字の置き換えをしたいのですが、どうやればいいのかわからないです。 例えば、計算した答えが1だった場合は「りんご」、2だった場合は「バナナ」、3だった場合は… というような表示をしたいのですが、関数でできるのでしょうか?
>65 A1セルには計算式があるんですよね? では、りんごやバナナなどの文字はどのセルに表示したいんですか? まさか「A1セルに」ではありませんよね?
>>65 =IF(A1=1,"りんご",IF(A1=2,"バナナ",IF(A1=3,"うんこ","ゲロ")))
68 :
65 :2009/10/01(木) 20:44:53
>62 説明不足で申し訳ありません。 A1には計算式があり、答えは別のセル(A2とかA3)に表示させたいです。
69 :
66 :2009/10/01(木) 20:57:20
>65,68 了解。それから計算結果は何通りくらいあるんですか? 3通りなら>67さんのやり方でいいと思うけど 数十通りとかなったら別のセル範囲に 値 と 表示したい文字列 のリストを作っておいてMATCHと INDEXで表引きした方がいいと思う。
70 :
31 :2009/10/01(木) 21:23:50
71 :
65 :2009/10/01(木) 21:44:29
>>67 ありがとうございます。IFを使えばよかったんですね。
数通りの場合はこちらを使用します。
>>69 計算結果は2通りから、最大30通りぐらいまであります。
計算結果が多い時はMATCHとINDEXで表引きをすればいいのですか。
使用した事ないので使い方はわからないですが、ググって調べてみます。
ご丁寧にありがとうございました。
72 :
名無しさん@そうだ選挙にいこう :2009/10/01(木) 23:50:13
73 :
名無しさん@そうだ選挙にいこう :2009/10/02(金) 00:04:54
>>65 質問の意図どおりの関数としては
=CHOOSE(A1,"りんご","バナナ","イチゴ","スイカ")
っていうのもある。
まあ、外にテーブル付くって
>>69 さんのようにするのがいいと思うけど
74 :
名無しさん@そうだ選挙にいこう :2009/10/02(金) 08:52:56
【質問です】 EXCEL2003において、ワイルドカードが使える(使えない)代表的な関数一覧・・・ってどこかにありますか? ぐぐったのですが、よく分からない・・・ もちろん、個別関数において「使える」「使えない」というのは調べられるのですが、一覧があると分かりやすい・・・と思って。
質問です エクセル2000から2007に変更したのですが、セルの塗りつぶしの 標準色セットが変わってしまっています 今までと同じ色で塗りつぶしたいのに、同じ色を探すだけで時間を取られます 2000と同じ標準色パレットを使用したいのですが、そのようなことはできますか?
78 :
58 :2009/10/02(金) 12:42:24
>>60 回答ありがとうございます
1、実行してみましたが、A1から下に向かい連番がふれられていくだけです
前回のVBAの何処かに追加するのですか?
2、連番を入れるセルは何処でしていすれば良いでしょうか?
>For i = 1 To 512
ここが開始と終了ですね?
>>77 ありがとうございます
ちょっと操作感は違いますが、以前と同じ色を入力できるようになりました
他にも挿入した図形が印刷したらシャギシャギになってたり
2007って2000や2003との互換性があまりないのでしょうか・・・
>>79 ワードもエクセルも2007から内部構造が完全に変わった。xlsxファイルの拡張子をzipに変えてみるとわかるよ。
図形やグラフは互換性がとても低い。印刷するとずれたり大きさが変わったりする。
>>80 なるほど・・・厄介ですね
周りがまだ2000〜2003だらけなので、戻した方がよさそうですね
>78 それくらい応用してくれ。
>>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 ' 列方向に書き込む場合、コメントブロック解除して
>>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
>>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
>>83-85 のコードを
同じ標準モジュールに順番にコピペすればOKだから
87 :
58 :2009/10/02(金) 19:26:08
88 :
名無しさん@そうだ選挙にいこう :2009/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 :
名無しさん@そうだ選挙にいこう :2009/10/02(金) 20:41:37
セルの中の文の特定の部分だけ塗りつぶしをかける方法はありませんか? Excel2007です。
質問です、お願いします 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 文字列 自動で 商品の仕入れ履歴をエクセルで記録しています。 元々、なにかしらの準備をしておくことで 品目コードから、商品名を一つ右隣のセルに自動呼び出しすることは可能でしょうか? (例) コード 商品名 一箱収容数 12512575 ○○○○ ▲▲▲ 上の○と▲が自動で入力できるようなシートを作れれば嬉しいです。
会社で使ってるファイルですが、=VLOOKUP(N8, $A:$FI, 3) と書いてありました。 この $A:$FI は、どういう意味でしょうか? A1:FI20 なら分るんですが・・・
>>91 A列からFI列を選択している。
おいらも行数が不定の場合はこうするよ
>88 VBA質問相談所にも似たよう質問してませんか?で、何か条件が増えたような。 セルひとつづつ条件をチェックしていくしかないと思うけど。 まず、処理対象のセル範囲があやふや。 A1:A100の条件があるかと思うとrange(cells(10,h*3),cells(100,h*3))ということで10:100の範囲になってるし。 hの値が1から始まるならC、F・・・IU列(255列目 h=85)まであるんですか? VBA質問相談所の方(レスbP5)を見ると >A3、A6、A9、A12 「Cells(1,h*3)」 のような飛び飛びのセルを average したい ってあるけど。ひょっとして10列目〜100列目ってこと? VBEで CELLS( まで入力したら行と列の順序がわかりますよ。
94 :
58 :2009/10/03(土) 11:11:56
>>83 83・84・85の順番に張り付けて実行しましたが、A1から下に向かって連番が
振られていくだけで、印刷は出来ませんでした
95 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 11:15:06
こんにちは。 エクセル2007って安いお店でいくら位でかえますか?
>83の ' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True の行は有効に('をはずす)してますよね?
97 :
58 :2009/10/03(土) 11:38:59
>>96 レスありがとうございます
(' )を削除して実行した結果、印刷はするのですが
A1に連番の指定した値がでて印刷→A2に次の連番が出てきて印刷になってしまいます
・・は指定したセルにだけ、違った連番が現れる毎に印刷にしたいです
ちなみにセルを指定する場合は
>With Range("A1")
のA1を変更すればいいんですよね?
99 :
RK :2009/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 :2009/10/03(土) 12:29:42
>97 >83の lR = lR + 1 ' 行方向に書き込む場合、コメントブロック解除して をそのまま生かしているのなら、行方向にずれます。出力先固定ならば、コメント化すること。 出力セル位置(基準位置)の指定は >97 のとおりです。
101 :
58 :2009/10/03(土) 12:39:45
102 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 12:41:45
103 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 12:49:01
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ピボット ゼロ 非表示 ピボットテーブルで、値がゼロのものは項目ごと表示させない方法はありますか? ピボットテーブルの上からフィルターは使用したくないので他の方法があれば教えてください。
>>103 少しだけ手作業してもいいなら、グループ化という方法がある。
まず、集計値でソートしておいて値ゼロを一ヶ所に集めて、
その項目を全部グループ化
そしてそのグループを非表示にする。
>>58 テンプレの3・4見てなかったよゴメン
暇だから作るけど
してほしい動作をもう少し詳しく
>>58 のコード通りなら
セルG12に番号を入れる→印刷、でいいのか?
それと、違った連番が現れる毎に印刷したいって
連番の範囲を指定するときに、重複する範囲を指定する場合があるってこと?
106 :
名無しさん@そうだ選挙にいこう :2009/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 :2009/10/03(土) 17:23:09
>>106 とにかくデータ行の下に25行の空白行を設けたいってことであってるのかな?
横から失礼 >106さんがしたいのは、 25行目から上方向に検査を行い、最初に見つけた(B列の)空白セルのある行から25行目までに空白行を挿入したい ということだと思います。 例えば、B25セルが空白だった場合は 25−25=0 で空白行の挿入は行われず、 B24セルが空白だった場合は 25−24=1 で1行挿入する という具合。
109 :
名無しさん@そうだ選挙にいこう :2009/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 :2009/10/03(土) 18:31:46
>109 >印刷時複数のシートに分割されないように 複数のページに分割されないようにして ということですね。 改ページを設定する方法じゃダメ? 行挿入したら計算式に影響ありませんか?(計算式があるのか知らないけど)
111 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 18:45:06
106です。
>>108 さん
「複数のシート」ではなく「複数のページ」でした。重ね重ねすいません。
「改ページを設定する」ってのは分かりませんです。そういう方法も
あるのでしょうか?
計算式の参照は行方向だけなので、行挿入しても問題ないと思います。
112 :
108 :2009/10/03(土) 20:23:06
>111 手作業での改ページはわかりますね?(メニュー−挿入−改ページ) マクロの自動記録をしてみたら、次のようなコードができました。 ※12行目を選択して改ページしたときの内容です。(当方はExcel2003です) Rows("12:12").Select ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCell Range("A12").Select こういうこともできるということで。
113 :
離島のサンデーPG :2009/10/03(土) 20:23:29
>>106 連続データが30行(B2:B31まで)あったらどうすんのかな?
114 :
離島のサンデーPG :2009/10/03(土) 20:29:57
> 1シートのデーター入力行数が25です。 あ、ごめん。よく読んでナカッタヨ。
115 :
名無しさん@そうだ選挙にいこう :2009/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 :
名無しさん@そうだ選挙にいこう :2009/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 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 21:26:19
↑ すいません 106です。115の続きです。
118 :
108 :2009/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 :2009/10/03(土) 21:45:50
>>104 おお、そういう方法もあるのか。
ありがとう
【1 OSの種類 】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL 外部プログラム起動 Excel 2007のハイパーリンクで、外部プログラムを起動していますが、 この外部プログラムに引数を渡したいと思っています。その引数の指定方法を教えていただけないでしょうか? **.exe *** *** と、スペースで引数を指定すると、" "が"%20"に変換されてしまい、うまく指定できません。 スペースをうまく指定する方法を教えてください。 宜しくお願いします。
122 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 22:47:45
エクセルで確率を計算したいのですが、 20%の当たりを、5回連続ではずす確率は? みたいな問題に対する式とかありますでしょうか。
>122 20%の当たり なら 80%の外れ 5回連続で外れ なら 80%の5乗 でいいんじゃないですか?
124 :
名無しさん@そうだ選挙にいこう :2009/10/03(土) 23:00:53
>>123 統計関数、の所を探していて混乱してました。
普通の計算ですね・・
ありがとうございます。
宿題させんな
>>106 1シートのデータ行数が25で固定なら
最初から印刷範囲を設定しておけばいいのでは?
また、改ページが自動で設定されるのがイヤなら
印刷プレビュー → 設定 → ページ設定の次のページ数に合わせて印刷で
横と縦をそれぞれ1に設定すればいい
それともこうゆう事?
・ある列(例えばA列)をチェックして
・空白行があればそこで区切り25行になるようにする
・それを2行目からN行目まで行うと
・1シートのデータ入力数じゃなく、1改ページ当りのデータ数が25
127 :
あ :2009/10/04(日) 00:25:12
計算で例えばA1から順に1 10 100 1000ってなってて1と10の差(9) 10と100の差(90) 100と1000(900)の差それぞれのを一編に出す方法教えて下さい またこの計算が出来る関数はありますか??
宿題させんな
129 :
怐怐 :2009/10/04(日) 01:18:26
130 :
あ :2009/10/04(日) 02:27:33
手順を教えてもらえません??(>_<。)
B2に=A3-A2ていれて 下にフィルコピー
132 :
名無しさん@そうだ選挙にいこう :2009/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 :2009/10/04(日) 11:17:28
>132 手作業(もしくはVBA)での改ページしていませんか? 表示形式を通常から「改ページプレビュー」にしてみたらいいです。 改ページの解除はできますか? それから、行挿入した部分は罫線はどうなってますか? 画面上で表示されていますか?
>>132 印刷範囲は25行目で固定なの?
>例 22行目 データー有り 23行目 空白行 24行目 データー有り
> 25行目 データー有り 26行目 データー有り 27行目 空白行
この例だと、2枚目のページ(行挿入前の24行目)以降は印刷しないの?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 履歴書 作成 Excelで就職用の履歴書を作ろうとしているのですが、 ネット上でダウンロードできるものではなく、自分でそういったものを作りたいのです。 そういった表を作る上での丁寧な解説などがのったサイトはありませんか?
就職できるかどうかはそこからすでにはじまってるんだよ
>>136 いやまあ、そういわれてしまうとそうなんですが…
一応、基本操作はマスターしています。
セルの結合とかやればうまくいくのかな、という気はするのですが。
>>137 マスターしてるんならできるでしょうに
落ちてる奴改変すりゃすぐできるでしょ
>>138 うーむ…それもそうですね、
これも一つの勉強と思って頑張ってみます。
ありがとうございました。
・いちから自分で作成できるかどうか ・ネットでテンプレートを検索して応用できるかどうか ・知人につくらせるだけの人脈があるかどうか どれも無理なら就職は無理よ
今、手持ちの履歴書(PDF等ではなく実際の紙) を参考に作成していますが、なんとか作れそうです。 背中を押してくれてありがとうございました。就職に向けて頑張ります。
そういうのはワードで作れよ
143 :
名無しさん@そうだ選挙にいこう :2009/10/04(日) 17:16:14
確かに・・・ エクセルよりはワードで作った方が自分の勉強になるよ 自分はワードだとどこかで爆発しそうだけど
昨日隣のおばちゃんが10行くらいの文章Excelで作ってたわw
>>143 ワードなんて別に勉強してまで使うもんじゃないでしょ。
ただのワープロだぞ。
エクセル>ワードだな 大抵のものはエクセルで作ってるお
147 :
名無しさん@そうだ選挙にいこう :2009/10/04(日) 21:19:15
会社ではワードはある程度使えないと、顰蹙なもんで・・・ 自分もエクセルの方が楽だけどさ。
俺もエクセル派。エクセルで作る方が早いから あと複数文書を1ファイルにまとめられるのもいい 数字やグラフが入るとエクセル必須だしな。 よくわからないけど団塊のおじさんは妙にワード使うのが上手い傾向がある エクセルは全く使えないんだけどw
150 :
58 :2009/10/04(日) 21:32:44
>>105 親切な応対ありがとうございます
会社の伝票を会社のプリンターで発行したいのですが
以前に、まとめて500枚くらい印刷してしまうと、プリンターが、正常に動かなくなったことがありましたので・・
それと今回は、取引会社(VBA自体知らない人たち)にも手伝って貰うために、連番の範囲を指定した
ファイルを渡して印刷してもらう事にしました
詳しい動作
1、セル「G12」に連番を書き込み、異なる連番が現れる都度印刷される
2、範囲は 1TO 50 みたいに指定できたら楽です
3、伝票1枚に1つの連番が入り、重複する連番は指定しません
追加できたら
1、連番の先頭に−(ハイフン)を入れられますか?
2、数字→アルファベットの後に「#$%&\」等の記号も追加することは可能ですか?
>>149 例えば5行の文章で2行目を修正したい時はどうするの?
>150 追加の部分は セルの書式−ユーザー定義で好きなようにできますよ。 G12セルを選択した状態で 書式−セル−表示形式 で ユーザー定義 を選び、種類(T):の欄に "!#$%&-"@ って指定してみてください。G12セルの内容の前に !#$%&- が付加されます。
153 :
58 :2009/10/04(日) 21:55:14
>>152 ハイフンの件はわかりました
!#$%&は
123456789ABCDEFGHJKLMNPQRSTUVWXYZ#$%&\
と言う感じで桁数を増やしたいと言う意味です、
(すみません言葉足らずでした)
154 :
105 :2009/10/04(日) 22:01:51
>>150 >2、範囲は 1TO 50 みたいに指定できたら楽です
これは、1〜50て指定したら0001〜001Gてなるようにて事?
どっちか決めてもらった方が作りやすい
>連番の先頭に−(ハイフン)を入れられますか?
>数字→アルファベットの後に「#$%&\」等の記号も追加することは可能ですか?
可能か不可能かでいえば可能だよ
追加する記号が固定なら簡単だし、変化するならその条件が判らないと無理
155 :
58 :2009/10/04(日) 22:14:33
>>105 レスありがとうございます
1〜50と設定したら
0000〜001Gがでる様にしてください。
先頭の「-(ハイフン)」もお願いします。
「#$%&\」の4つの記号もお願いします。
なんなの?この人↑
157 :
58 :2009/10/04(日) 22:51:40
>>156 何度もおじゃましてすみません
自分の中でも仕様が上手くまとまっていなくて
ご迷惑をおかけします
158 :
名無しさん@そうだ選挙にいこう :2009/10/04(日) 23:32:23
↑誰も相手にすんな。
105がやってくれるんならいいんじゃないか? 俺はゴメンだが
160 :
名無しさん@そうだ選挙にいこう :2009/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 :2009/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 :2009/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 :2009/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 :2009/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 :2009/10/05(月) 00:45:12
166 :
105 :2009/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 :2009/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 :2009/10/05(月) 09:06:51
>>105 ありがとうございます、無事に印刷ができました
取引会社に >161〜166 のマクロを入れて渡すのは どうかと思うけどなあ、他人事だからどうでもいいけど。
>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
エクセル2003です 今セルに入っている数字(金額)の表示を、たとえば 1,234,567 を 1,234 (千円台) や 123 (万円台) に変更することはできますか? 元の値を弄らずに、表示だけを変更したいのですが・・・
172 :
名無しさん@そうだ選挙にいこう :2009/10/05(月) 14:56:53
質問なのですが、マイクロソフトオフィススペシャリスト講座を 募集しているパソコン教室があるのですが、一ヶ月短期間コース というのは一体どんなカラクリがあるのでしょうか? 初心者を集めてます。
>>172 テストの傾向に対して暗記させるだけ
ここの連中でも傾向知らずに受けると落ちると思う
一応補足しておくと、それが悪いって言ってるんじゃないよ ただ正直、ちょっと気に食わないというのはあるがね
A1〜A100に果物名が入ってるとします。 B列に重複なしに、一意の果物リストをつくる関数を教えて下さい。
>>177 一意のリストを作ったらその後どうしたいの?
シートを追加してリネームするマクロなんですが、今月だったら "OCT 09"(OCTは全て大文字) に するには、???にどう書けばいいですか? Sheets.Add.Name = ??? & " " & Right(Format(Date, "yyyy"), 2)
ピボットテーブルを作れば、一意なリストの作成と金額の合計がいっぺんにできるよ!
>>182 俺ならこう書くけど、
Sheets.Add.Name = UCase(Format(Date, "mmm yy"))
どうしてもその式の???を埋めるような方法じゃなきゃだめ?何かの練習問題?
185 :
182 :2009/10/05(月) 21:19:26
>>184 練習問題じゃないです。
Oct 09なら出来たので、OCTのとこだけ聞いたつもりでしたが、そちらの方が
スッキリしてていいですね。ありがdございました(ペコッ
質問です。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 開始位置 保存したファイルを開いたときに 普段なら保存した時のセルから開始されると思うのですが なぜか違う場所から(シートもセルも)開始されてしまいます。 なぜでしょうか?
エクセルについて質問です。お願いいたします。 エクセルファイルが3つあるとします。A、B、Cとします。 それぞれのファイルのあるシートだけコピーして、新しいエクセルファイル を作成する方法はないでしょうか? つまり、エクセルファイルAのシート2のみを、新しいエクセルファイルDを作成し ここにコピーする。エクセルファイルBのシート3のみをエクセルファイルDに、 エクセルファイルCのシート1を、エクセルファイルDへコピーする。 という方法はないでしょうか? エクセルファイルAを、新しいファイルにコピペすると、セルのサイズなどを もう一度あわせないといけなくて、非常に不便なんです。セルの形ごと コピーできればいいんですが。
>>187 シート名の所右クリックして出るメニューのコピー使えばいいんじゃね?
新規ブックにコピーだな
190 :
187 :2009/10/06(火) 17:37:45
簡単にできました ありがとうございました
列幅コピペてのもあるけどね
2003、別シートのA1セルの値を参照させたいのですが どうしたらいいでしょうか
>>193 おお、できました
ありがとうございます
195 :
名無しさん@そうだ選挙にいこう :2009/10/06(火) 22:39:59
随分低レベルな質問になったな。
\  ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ `'ー '´ ○ O o 。 ,,,,,,---ー---、、、 ,.-'";:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:ヽ、 ,,.;;;::;:;:;:;::;;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;!i`ヽ /;:;:;:;:;:;:;:;:;:;:;:;:!!!!!!!!!''""":::;!!!!ノヾ;:;:\ /;:;:;:;:;:;:;:;:;::!!''" !;:;:;:;:;ヽ と |;:;:;:;:;:;:;:!'" ヽ;:;:;:;ヽ 思 |;:;:;:;i''" i!;:;:;:;| う |;:;:;:;| ヾ;:;:;:| 亀 |;:;:;:;| ,,,;;:iii;;;;; ,.-==--、. `!;:;|ヽ 井 〉;:;:| ,.-''" ̄ ̄ ̄`ヽ⌒| --。、-、 ヽ-`' | で i `u i -‐'"ヾ'" :: ::! : | ノ あ i | ノ ヾ、___ノ ::| っ | | ヽ、__,.-i i 、 : :| た | | : : '" `〜ー〜'" ヽ : : ::| `i ヾ ' ____ ;: ;: :| \ -‐'''"~ ̄ ̄ ̄ ̄ ; ;: :/-、_ ヾ: : . ` " " " ,./ `ー-、 ,,,--'\: : ,. ,.イ _,.-‐'" |`ヾ;:;:ヽ....、 : : : / ! _,.--‐'" | `ー、;:;:;:;:;:;:;:;:;:;:,.-''" | | `>ー‐< / ! / ,.'"\ ! | /~i / `/
やめろw
198 :
名無しさん@そうだ選挙にいこう :2009/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だったっけか。
ちょっち違うかな?
A3セルに10/7と入れたら、B3セルに2009/09/01と表示させるには どう書けばいいでしょうか?
>199 10/7 と 2009/09/01 はどこがどう対応するんでしょうか? 10/7 と入れたら 2009/10/7 なら話はわかるんですが(というか自動的に日付とみなしてこうなる)。
>>199 どういう関連性があるんだ?
先月の月はじめなら
=A1-DAY(A1)-DAY(A1-DAY(A1))+1
=DATE(YEAR(A1),MONTH(A1)-1,1)
とかかな?
色々方法はあるだろうな。
>>199 単純で良いなら、
B3セル =IF(A3="10/7","2009/09/01","")
203 :
202 :2009/10/07(水) 20:24:19
↑ただしこれはA3セルの書式設定を文字列とかに変えないとダメなようです
204 :
199 :2009/10/07(水) 21:05:03
あぁぁ、、、 素直に書けばよかったかもw =today() なんだけど、先月の1日をyyyy/mm/dd形式で表示させたいんです。
205 :
199 :2009/10/07(水) 21:07:51
>>201 =A1-DAY(A1)-DAY(A1-DAY(A1))+1 だと、1 になりました。
=DATE(YEAR(A1),MONTH(A1)-1,1) だと、#NUM! になりました。
連投すんません。 yyyy/mm/dd形式 じゃなくて、yy/mmm形式で、09/SEPにする でした。
>>205 =DATE(YEAR(A3),MONTH(A3)-1,1)
じゃねーの
A1とA3を間違えてるんだろう
208 :
199 :2009/10/07(水) 21:30:36
別に間違えたわけじゃないよ。 A1で質問するのが普通だからそう書いたまで。 A1をA3に直すことくらい自分で気がつかないのかな。
どんな言い訳してもそれは間違いだろw >A1をA3に直すことくらい自分で気がつかないのかな。 気が付かない初心者なんだろうに なんで上から目線なの?アホなの?
>A3セルに10/7と入れたら、B3セルに どう読んでもA1には見えんがなwww
>>209 最近よく見かける恥の上塗りの人か
大人なら素直に間違いを認めようぜ
誰だって間違いはするんだ
完璧な人間なんて居ないのさ
「あっ間違ったゴメン」 とかって書けばすむことなのにw
【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 :
名無しさん@そうだ選挙にいこう :2009/10/07(水) 22:58:08
>>214 >$C$10の中味を参照しにいってしまって
の意味がよく分からなかったけど、やりたいことは
=MIN(INDIRECT(D20), 10, 20, 15)
みたいなことかな・・・
216 :
214 :2009/10/07(水) 23:25:05
>>215 ありがとうございます、その通りです。
ちょっと勘違いしてました、カンマ使ってて範囲が指定されなくておかしいなと・・orz
無事うまくいきました。
まーた偏執狂がいるなw
205はネタじゃないぞ A3に10/7、B3にその数式を入れてみろ
アホでつか?
222 :
名無しさん@そうだ選挙にいこう :2009/10/08(木) 09:54:29
つぎいこ、つぎ。
223 :
名無しさん@そうだ選挙にいこう :2009/10/08(木) 13:44:35
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 データ順序 変更
積み上げタイプのグラフについての質問です。
データ順序を変更すると、その順序が全ての系列に反映されますが、
これを1系列ごとに変更することって可能でしょうか?
http://www.aoten.jp/snack/excel/s4_10.html この頁で言いますと、4月は札幌が一番下、5月は福岡が一番下・・・みたいに
それぞれの月で数量の多い順に並べたいわけです。
可能でしょうか?
なんかどっかで見たような質問だな
226 :
名無しさん@そうだ選挙にいこう :2009/10/08(木) 20:54:08
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 時間処理 2009/1/1、1:00 ・ ・ ・ のように日にちと時間が別セルにある時に、 すべての時間を6時間進めるのはどうすれば良いでしょうか? よろしくお願いします。
=A1+6/24
【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
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 貼り付け 参照 シート1にマスターデータみたいに全部のデータが A B JAN 商品名 49067・・・・ まんじゅう ・ ・ ・ みたいにあって シート2に JAN 49068・・ ・ みたいにマスターデータ内のJANだけが飛び飛びで並んでるんですけど JANの隣のセルにマスターデータから商品名を参照して貼り付けるにはどんな関数でどんな数式つかえばいいですか? JANの隣のセルにに
>>226 A1=2009/1/1 ,B1=1:00 という場合、
A2 =IF(DAY(B1)=DAY(B2),A1,A1+1)
B2 =B1+6/24
で下方へコピー
>>226 どこかのセルに6:00と打って、コピー、形式を選択して貼り付けから加算でOK
なんだ日付と時刻が別セルか。 上は駄目だな。 同じセルに日付と時刻をまとめてから6時間を足すのが簡単だな。
233 :
227 :2009/10/08(木) 22:52:00
>.232 俺もそこは気が付かなんだw >226 別セルで日付の繰り上がりもしたいのか? 簡単だが説明するのがメンドクサイ。 あと本当にそのキーワードで検索したのか? それでHitしたサイトの解説が分からないの ならアキラメロン(AA略
234 :
名無しさん@そうだ選挙にいこう :2009/10/08(木) 22:57:01
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 重複 2つの列から重複しているデータを抜き出すにはどうしたら良いでしょうか? 例えば、 A B 中村俊輔 長谷部誠 中村憲剛 中村俊輔 遠藤保仁 本田圭祐 長谷部誠 今野泰幸 稲本潤一 中沢祐二 とあったら、 「中村俊輔」と「長谷部誠」を抽出する感じです。 フィルタオプションの設定からやってもうまくいきませんでした。 よろしくお願いいたします。
235 :
228 :2009/10/08(木) 23:10:19
ググって自己解決しました。
>>234 その検索キーワードでググって解決しない理由がわからないのだが。
例えば、
C1=IF(COUNTIF(B:B,A1),ROW(),"")
D1=INDEX(A:A,SMALL(C:C,ROW()))
>>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 :
名無しさん@そうだ選挙にいこう :2009/10/09(金) 00:58:31
>>229 Sheet1にマスター、Sheet2のA2に49067とかあるなら、となりのB2に
=VLOOKUP(A2,Sheet1!A:B,2,0)
みたいでどお?
239 :
名無しさん@そうだ選挙にいこう :2009/10/09(金) 01:09:16
>>234 2つの列の項目名を同じにしてから、フィルタオプションの設定
名前 名前
中村俊輔 長谷部誠
中村憲剛 中村俊輔
遠藤保仁 本田圭祐
長谷部誠 今野泰幸
稲本潤一 中沢祐二
リスト範囲 $B$1:$B$6
検索条件範囲 $A$1:$A$6
みたいにすればB列に中村と長谷部が出る。
>>239 分ってるとは思うが、それはExcel2002でしか通用しないよ。
しかもデータが少ないときだけだな。
2003とかなら稲本潤一と稲本潤一朗とかで前方一致で不具合が出るから、検索条件範囲のデータを
'=中村俊介
'=中村憲剛
'=遠藤保仁
'=長谷部誠
'=稲本潤一
としないと。
241だが、時間だけ進めるなら
>>230 や
>>237 で大丈夫みたいだな。
何時間何分進めるとかなら誤差対策が必要そうだが。
>>240 作業列に="="&A2などとして、その作業列を検索条件範囲にすればよさそうだね。
>>226 a1+b1-int(b1)+6/24
でいいんじゃないのか
246 :
名無しさん@そうだ選挙にいこう :2009/10/09(金) 15:32:14
各列ごとに、同時に複数の列を挿入することはできますか?
>>246 列を挿入するんじゃなくて、並び替え使えば出来る。
作業行に連番振って、その連番を右に必要回数コピーして
その作業行をキーにして列単位で並び変えればOK。
最後に作業行を消せばよい。
250 :
名無しさん@そうだ選挙にいこう :2009/10/09(金) 20:10:22
【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 :
名無しさん@そうだ選挙にいこう :2009/10/09(金) 22:06:39
エクセル2007で列を挿入しようとすると、オブジェクトがはみ出しますとか出て、 挿入できないんです。 いままでエクセル2000使ってたから、使いにくくて仕方がありません。 どなたか対処法を知っている方見えましたら教えてください。
表のいちばん右の列から右端の列までを選択して削除
【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
>>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
>>256 出来ました!
ありがとうございます(`・ω・´)ゞビシッ!!
>>255 前からINDIRECTの好きな先生が住みついてるよなぁ。
=INDEX(B:IV,MOD(ROW()-1,3)+1,INT((ROW()-1)/3)+1)
やってること同じじゃないの?
>>255 > 次のように規則的に3カウントずつ並べていきたいのですがどのようにすればよいでしょうか(´・ω・`)
本当にやりたいことは3カウントずつ並べることなんだろうか?
もっと上位の概念でやりたいことを質問したほうがいい回答がもらえるよ。
グループ別に集計したいとか、制約を満たす最適解が欲しいとか。
またまたINDIRECTを理解できない小僧がキャンキャン吼えてるよ
>>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くらいまで。
こんな感じです(´・ω・`)
それは確かキーボードマクロの内容か まぁそれはいいとして、VBAで↓作った方が早かったね。出来たみたいだしもういいことだけどさ〜 A1=LCLICK 70,230 デスクトップの座標を示している。座標は順番に24通り、24までいったら1に戻る。24通りは作業列に用意 A2=delay 50 常に同じ A3=send C:\001.txt 002 003と増えていく 制限なし
>>263 そんなのソート使えば余裕じゃないの?
indirectやrowはデータへのポインタを意識しなければならない手法で低級なテクニックだよ。
まあ解決してるならどうでもいいことだが。
>>266 コピーから値貼りつけするのであればどれでもよいが、式を残すのであれば揮発性関数のINDIRECTやOFFSETは使わないのが常識。
まぁ値貼りつけ前提の式だろうけど。
269 :
離島のサンデーPG :2009/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
こんなコードですまん。
書き忘れたが行列入れ替えてからピボットな。
272 :
251 :2009/10/10(土) 23:20:32
>>254 ありがとうございます。
イコールで数値を合わせる方法もあるんですね。
別の機会に応用してみます。
>>269 ありがとうございます。そのまま使えました。
データは会社から持ち出せないので、13日に試してみます。
273 :
名無しさん@そうだ選挙にいこう :2009/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秒と表示できるようなテクニックは あるでしょうか ご存じの方お願いします
275 :
離島のサンデーPG :2009/10/11(日) 09:39:34
>>273 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Hour(Range("A1").Value) >= 1 Then
Range("A1").NumberFormatLocal = "h""時間""mm""分""ss""秒"""
Else
Range("A1").NumberFormatLocal = "mm""分""ss""秒"""
End If
End Sub
>>275 さん
回答ありがとうございます
しかし マクロに貼り付けが上手くいきません
ツール マクロ マクロ名”時間入力” 作成まで進むと
Sub 時間入力()
End Sub
のウインドウがでるので
その間に
275の本文を入れ 上書き保存して
元のエクセルファイルに戻り ツール マクロ 実行すると
コンパイルエラー End Subが必要です と表示され 上手くいきません
なにかやり方が間違っているでしょうか 済みません
278 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 12:07:14
質問です。よろしくお願いします。 エクセル2007. sub jjj() Dim inputnuma, inputnumb inputnuma = InputBox("何月?") inputnumb = InputBox("何日?") If MsgBox(" ", vbOKCancel, "実行確認") = vbOK Then end if ボックスに月日を入力して次に、実行の確認をします。 その際に、 inputnuma 月 inputnumb 日でok? と表示したいです。 (例えば、、、10月16日でok? という感じ。 ) 上記にプログラムに If MsgBox("inputnuma 月 inputnumb 日 でok?" , と入力すると そのまんまで inputnuma 月 inputnumb 日 でok? となってしまいます。 なんとかなりませんか?わかる方教えてください。お願いします。
If MsgBox(inputnuma & "月" & inputnumb & "日 でok?" , みたいな感じ 変数はダブルクオーテーションでくくらない
280 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 12:59:38
今EXCELの勉強しているのですが、実際に仕事でexcelを使うとなると 本に載ってる問題のようなものを渡されて「これやっといて」っていう わけではないですよね? 実際の仕事では、まっさらな状態から自分でやっていかなきゃいけないのですか? 例えば、問題の段階では既にある表を使ってグラフを作ったりするわけですけど 本当の仕事となると、表から自分で作るのでしょうか?
ま〜大概は入力作業だな 既にあるフォーマットに在庫なり、日付なりデータを入力していく それを決まった形式のグラフで毎回同じように作るってパターンが多いと思う 後は多岐に渡りすぎてどういうのがあるとは言えない ただ表は作れるようになっておいたほうがいいね セル内で計算して合計を出すのと、罫線。後は表示形式か 他は会社により過ぎてなんとも言えない。困ったときはここで聞いてみては
282 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 13:18:05
>>281 ありがとうございます。
やるべきことが少しわかってスッキリしました。
今できることを頑張って、困ったときはまた相談させていただきます。
283 :
離島のサンデーPG :2009/10/11(日) 13:36:56
ごめん、ちょっと間違いがあったので修正も兼ねて...
>>276 そうであれば
ツール マクロ マクロ名”時間入力” 作成へと進み
Sub 時間入力()
End Sub
のウインドウがでたら
その間に
If Format(ActiveCell.Value, "h") >= 1 Then
ActiveCell.NumberFormatLocal = "h""時間""mm""分""ss""秒"""
Else
ActiveCell.NumberFormatLocal = "mm""分""ss""秒"""
End If
を貼り付けして
さらにその画面左側のプロジェクトエクスプローラーの中の
実際に時間を入力するシート(たとえばSheet1)を選択してを右クリック
[コードの表示]を選択して
コードウインドウに
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call 時間入力
End Sub
をそのまま貼り付けて
上のメニューから[デバッグ]→[VBAprojectのコンパイル]を選択してください。
あとはSheet1のA1に時間を入力すると実行されるはずです。
セル範囲とか不明なんでアクティブセルで実行されるようにしといたから。
284 :
離島のサンデーPG :2009/10/11(日) 13:41:44
あ〜、たびたび間違いスマソ
削除: あとはSheet1のA1に時間を入力すると実行されるはずです。
> セル範囲とか不明なんでアクティブセルで実行されるようにしといたから。
>>283 を読み替えて下さい。
285 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 14:01:35
286 :
SUBMITできない :2009/10/11(日) 15:32:24
subimitできないんです。
Sub ie_Forms_DataSET() 'データセットのテスト
Dim objIE As Object 'IEオブジェクト参照用
'IEを起動する
Set objIE = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
objIE.Visible = True '見えるようにする(お約束)
'.Navigate で 指定したURLを開く
objIE.Navigate "
https://wwwi.mbrace.or.jp/mb2ninsyouservlet "
'ページが表示される 完了を待つ
While objIE.ReadyState <> 4 'READYSTATE_COMPLETE = 4
While objIE.Busy = True
DoEvents '特に何もしないで.Busyの状態が変わるまで待つ
Wend
Wend
'データをセットする
'htmlドキュメント フォーム(0番目) アイテム(MEMO)に転記(代入)する
objIE.Document.Forms(0).Item("uid").Value = "○○○○"
objIE.Document.Forms(0).Item("np").Value = "○○○○"
'フォーム(0番目)を .Submit(送信・投稿) する
objIE.Document.Forms(0).Submit '送信処理
End Sub
---------------------------------------------------
287 :
SUBMITできない :2009/10/11(日) 15:34:26
>>286と同じ人間
HTMLソースの頭の部分が
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="HOTALL Ver.7.2W">
<TITLE>・、・ソ。シ・ヘ・テ・ネナ・シイァセレイ靂フ</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
となっていて、
ジャバスクリプトで書かれている?みたいですが、
もし、submitできれば、
https://wwwi.mbrace.or.jp/mbw_020.cgi にいくのですが、、
パスワードは入力できたのですが、submitができなく、ページが切り替わりません。
関係してるらしいところらへんのソースは、
function sosin(){
if(haneisuu(document.form1.uid.value) == true) {
if( document.form1.uid.value.length != "" && document.form1.np.value.length != ""){
document.form1.action="mbw_020.cgi";
document.form1.submit();
}
else {
alert(NINSYOU_ALERT_2);
}
}
return false
}
-------------------------------------------------------
VBAで、submitできますか?教えてください。
288 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 15:47:22
>>273 書式設定で
[>=0.041666]h"時間"mm"分"ss"秒";mm"分"ss"秒"
数字の大小を条件とした書式の切り替えを使った。
>>275 前からなにかとSelectionChange使うやつがいるがお前か?
>>288 で簡単だが、どうしてもマクロでやりたきゃSelectionChangeイベントじゃなくChangeイベントだろ?
291 :
SUBMITできない :2009/10/11(日) 18:49:16
だれか、競艇ログインさせてください。
292 :
SUBMITできない :2009/10/11(日) 18:50:28
ログインできるまで粘着します。
294 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 18:57:09
質問ですが Excel2007でパスワード設定をしています それを他のPCでたとえば別にバージョンで開くことは可能でしょうか? また仮にExcel2007が壊れて再インストールしなければいけなくなった場合、 インストールしたバージョンで同じパスワードさえ入れれば別にまた開く事は可能でしょうか?
296 :
SUBMITできない :2009/10/11(日) 19:00:30
objIE.Document.Forms(0).Submit でsubmitできません。 ソースが if(haneisuu(document.form1.uid.value) == true) { if( document.form1.uid.value.length != "" && document.form1.np.value.length != ""){ document.form1.action="mbw_020.cgi"; document.form1.submit(); } else { alert(NINSYOU_ALERT_2); } } return false } となっているのですが、 どうやったら、SUBMITできますでしょうか?
297 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 19:25:52
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 抽出、関数 (シート1) ・ ・ 10/1、80、85、88 10/2、77、64、71 (シート2) 10/2、77、64、71 のように、日つけ、金額、金額、金額、という行が毎日一行ずつ追加される表の 最終行(日付が入力された最終行)だけを、別シートに抜き出すにはどうすれば良いでしょうか。 よろしくお願いします。
298 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 19:40:38
>>297 =INDEX(Sheet1!$A:A,COUNTA(Sheet1!$A:$A))
これでA列の最終行の値。
=INDEX(Sheet1!$A:A,COUNTA(Sheet1!$B:$B))
INDEXはA列じゃなくてB列でもいいかも。
C列も同じように。。。
これは、途中にブランクがあると効かなくなるよ。
A列のデータ数を数えているから。
299 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 19:51:33
>>289 ActiveCellに入力したのをActiveCellに代入するから
Changeイベントで拾えないからSelectionChange
やってみてから文句家粕
>>297 =MAX(ROW(A1:A1000)*(0<>(A1:A1000)))
でshift+ctrl+enterで確定する。ブランクがあっても問題なし
A1000ってのは1000行ぐらいと勝手に決めてるけどシートによって変えてね
配列数式を使う日が来るとは思わなかったぜ
301 :
297 :2009/10/11(日) 20:25:42
298さん ありがとうございます。 実はシート1の日付セルは関数が入っているため、 この方法だと関数が入っていないセルまで進んでしまいます。 関数はカウントしない方法はありますでしょうか? よろしくお願いします。
>>299 釣りか?
入力値によって表示形式変えるんだから、イベントならChangeに決まってるだろうよ。
>>288 が書いた方法で簡単だから書かないけどね。
>>301 そもそもやろうとしていることが間違い。
305 :
297 :2009/10/11(日) 20:56:46
やりたいことの全体像ですが、 入力シートに入力したデーターを計算し、 日々の計算結果を蓄積するのにシート1を使い、 最新の計算結果だけシート2に表示したいと考えています。 この流れを関数だけで表現するのは無理でしょうか?
307 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 21:04:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 A列には日付、B列にはその日の売り上げがあったとして、 Cが月、Dがその月で売り上げがあった日数の合計、 Eがその月の売り上げ合計金額とする場合、うまく数式で表す方法を教えてください。 今現在は自分でB列で、1月の範囲を指定してcountifなどで出していますが、 A列の日付から、自動的にBから指定月の売り上げだけを拾ってくる方法を教えてください。 A B C D E 1 1/1 500 1 5 3000 2 1/2 2 ・ ・ 3 1/3 3 ・ ・ 4 1/4 4 ・ ・ 5 1/5 5 ・ ・ 6 1/6 1000 6 ・ ・ 7 1/7 7 ・ ・ 8 1/8 8 ・ ・ 9 1/9 9 ・ ・ 10 1/10 10 2 1100 ・ 300 10/1 301 10/2 300 302 10/3 303 10/4 304 10/5 304 10/6 304 10/7 800 304 10/8 304 10/9 304 10/10
>>307 D1は1でE1は500、ではないのか?
310 :
297 :2009/10/11(日) 21:30:29
すみません。どこにsumifを使えば良いのでしょうか?
変数の質問です。 A = Range("A1").Value のように書く場合と、 Set A = Worksheets("Sheet1") のように書く場合があります。 このスレをはじめ、ネットで紹介されてるのを真似てますが、 Set が必要・不必要の使い分けは、どう覚えればいいのでしょうか?
set オブジェクト でぐぐれ あとウォッチ式で見たら何となく分かるかもしれない
314 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 22:09:50
>>302 だ か ら や っ て み な さ い
わかりやすく書いたよ。
315 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 22:10:59
値か、そうじゃないか・・・って大雑把過ぎる?
setに関していえばオブジェクトか否かだろう ただこれは使っていないと分かりにくい 普通に構造体にでもしておいてくれれば良かったのに
>>314 おまえ見込みないからexcelやめろ。
かなり前からおかしなイベントマクロよく見たよね。 たしたTargetを使ってなかったんじゃなかったかな? Targetがなんたるかを知らないのかも知れないな。
>>314 はActiveCellの代わりにTarget使ってみな?
顔が真っ赤になるはずだから。
320 :
離島のサンデーPG :2009/10/11(日) 23:06:08
>>320 まー俺は別に動けばなんでもいい派だけど、
皆あなたのやり方は変ですよーみたいな事言ってるんだよ
俺もTarget使うやり方しか知らないのであまり偉そうなことはいえないんだけど
>>320 じゃぁなんでChangeイベント使わないんだ?
Target知らないからActiveCellなんて寝ぼけたこと言ってるんだろうよ。
324 :
312 :2009/10/11(日) 23:41:11
325 :
名無しさん@そうだ選挙にいこう :2009/10/11(日) 23:43:32
離島のサンデーPGの「PG」って、、、 ピン芸人?
326 :
離島のサンデーPG :2009/10/11(日) 23:45:45
>>321 ご助言ありがとうございます。
私も動けばなんでもいい派ですが(サンデーPGなんで)
今回の例は質問が特定範囲を指定していないという状況下で
だったらTarget指定したら質問者の実範囲と重ならない場合
動きませんってことになるんじゃないかと思ってActiveCellを使ったまでで
その結果ActiveCellを使ってChangeイベントドリブンできないということを
言ったまでなんです。Target.cellsで動くことはわかります。
>>326 あなたがもしブログやってるなら、アドレス貼ってください。
328 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 00:34:48
>>326 おめーはやっぱりなんにも分ってないよ。
だまってActiveCellの代わりにTarget使ってみりゃ分ることだろうに。
そんなばかにkまってないで仕事しろ
ピボットvsVBAの時もそうだが、お前らっていつも喧嘩してるよなw
(;´Д`)7
まあVBA厨は頭悪いからな。 やつらコードの良し悪ししか興味がない。
1万回ループ回してこっちのコードの方が1秒速いとかいってるしな
>>335 まったくだ。
ループの回数を減らす方法なら聞いてやってもいいが。
良いコード書けるに越したことはないと思うけど、何レスも言い合いするほどのことでもないよね 速さの競い合いは世間話みたいなもんでしょう
人のコードに茶々いれる基地外指摘厨みてると笑えるな
コードがいいかどうか以前のやつが多過ぎる。 例えば項目別の収支計算とかさせるとすぐにボロが出るからな。 収入から支出を引けばいいんでしょとばかりに組んだはいいが、収入のデータにが無くて支出だけある場合の処理がぬけてたりね。 これ実例だよ。
340 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 12:27:22
【1 OSの種類 .】 Windows Vista Ultimate 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 cell関数 col 条件付き書式 範囲 現在、A7:E15の範囲で条件付き書式に [数式が] =CELL("row")=ROW() を設定して [条件が真のときに使用する書式のプレビュー:] を黄色にして たとえば B7が選択されたらA7:E7の範囲が黄色になる D13を選択されたらA13:E13の範囲が黄色になる というようなことをしていますが 範囲外のセル、上記例で言うとH7とかF13を選択したときも 範囲の色が変わってしまうのですが これを範囲以外は色が変わらないようにできますか?
要素にばかりとらわれず、やるべきことについて高次のモデルを頭に描けるようにならなければならない。 実装なんかどうでもいいとは言わないが、優先度は低いのは確かだ。 モデルさえ正しければ、できるに決まっていることなんだからな。
>>340 CELL関数の第二引数を指定しないと最後に指定したセルが指定されるー
とあるから、340の通りだと条件付書式の再計算を止める方法か。cell関数と条件付書式じゃ無理っぽいな
当然VBAになるけど、条件付書式を使わずにVBAで直接色をつけてしまったほうが早いと思う
CELL("col")の値も調べろって話じゃないのか
344 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 13:26:14
初心者です。 ベテランの方なら即わかると思うのですが、質問させていただきます。 セルB1に=COUNTIF(B5:B60,">3")という計算式を書着込みたいのです。 Range("B1") = "=COUNTIF(B5:B60,">3")"とやると「コンパイルエラー」というのが出ます。 これを回避する方法を教えてください。 よろしくお願いします。
>>344 マクロの記録で一発
分からなかったらぐぐってくれ
初心者質問ですんません。 Sheets("MENU")にマクロボタンを置いて、アクティブになっています。 (A)はOKなのに、(B)はRangeクラスのメソッドが失敗しました となります。 シートをSelectせずにA1セルをSelectするのは、できないのでしょうか? (A) Sheets("10月").Select Range("A1").Select (B) Sheets("10月").Range("A1").Select
348 :
346 :2009/10/12(月) 14:09:29
>>347 俺へのレスですか?
貼られたサイトを見ましたがサッパリわかりません。
シートをSelectせずにA1セルをSelectするのはできないのでしょうか?
350 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 14:33:33
>>345 なるほど、やってみたらわかりました。
ありがとうございました。
351 :
346 :2009/10/12(月) 14:35:07
>>349 図を見てもわかりません・・・ orz
標準モジュール以外にもマクロを書くんですか?
Private subって何?
ちょっとググってきます。
352 :
346 :2009/10/12(月) 14:50:08
ググってきましたが、専門用語?が多すぎて良く分りませんでした。 349さん、図までつくってくださったのに、理解できないおバカですんません。 しばらくSelectを使って書くことにします。
354 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 15:06:52
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 はじめまして。初心者の質問ですみません。 PC2台保有しており、2台を使いデータをまとめていました。 夜はデスクトップで作業・昼間はノートで作業といったように… ノートからEXCELデータを添付してデスクトップへメールを送り この連休中に作業を終わらせました。そして上書き保存。 もう一度確認しようと思いファイルを探したのですが、無い… 受信したメールに添付されていたデータをそのまま編集していて デスクトップやマイドキュメントに保存せずそのまま上書き保存して しまっていました。受信したメールを開いても上書き保存する前のデータのまま… ファイル検索をしても出てこない。上書き保存はしているのでどこかにあるはずなのに… 連休すべて使ってまとめたのに… 誰か助けてください。
>>354 ファイル名が判ればウィンドウズの検索機能で検索すればいいんでない?
>>354 Windowsの検索機能やExcelの最近使用したファイルの一覧で
探しても見つからないならメールソフトから開いた時に
一時ファイルとして扱われて終了時に消されたとも考えられるが
>>354 マイコンピュータを.xlsか.tmpで探して見ては?
拡張子を隠しファイルをonにしてね
無理かなぁ・・
上書き保存の時にどこのフォルダに保存しているのかチェックしてみるといい。 検索機能使うより手っ取り早い気がする。
>>354 スレチだがw
受信したメールに添付されていたデータをそのまま編集できるの?
俺が使ってるメーラーは、Temporaryフォルダに入れられて編集できず、メーラーを閉じると
そのフォルダ内のファイルも消される。
ファイル検索して見つからないなら、もぅダメぽ・・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 可 A〜G列までデータが入っており、C列の文字列のうしろに余計な半角スペースがあります。 F列に、=trim(C2)と入れれば余計な半角スペースが無くせて、値をC列に 貼り付ければいいのですが、F列とか他の列を使わずに、余計な半角スペースを 無くす方法はありあmすか?
痴漢
>>361 本来の用途ではないのですが、C列を選択後、
データ→区切り位置→○ カンマやタブによって〜 …の○にチェックを入れる
→次へ→□ スペース …の□にチェックを入れる→次へ→完了
とすると後ろのスペースは消えます。
364 :
363 :2009/10/12(月) 16:32:06
ただし、文字列の途中にスペースがある場合、区切り位置を後ろへ指定する 必要がありますが。
365 :
363 :2009/10/12(月) 16:55:48
あ、ごめん、途中にスペースある場合はダメだった。
366 :
361 :2009/10/12(月) 17:09:06
367 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 17:15:55
質問させてください。 よろしくお願いします。 エクセル2007. VBA =Application.WorksheetFunction.Average(Worksheets("A").Range(cells(1,1),cells(30,1)) 指定範囲のA1 から A30 に 何個か "-" というのがありまして、計算されないのですが解決方法を教えてください。 "-" は空白と同じ扱いにしたいです。(割り算するときのカウントに入れたくありません。) よろしくお願いします。
>367 本当に試したのか???
369 :
361 :2009/10/12(月) 18:05:34
再カキコです。 361の例ですが、半角スペースを置換すると、途中にある半角スペースも 削除(というか置換)されてしまいます。(当たり前ですが) Columns("C:C").Replace What:=" ", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False 他に方法があるでしょうか?
370 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 18:28:07
367です。
>>368 さん
勘違いでした。
ワークシート名が間違っていました。
本当にすみませんでした。
>>367 Sub a()
Cells(2, 2) = Application.WorksheetFunction.Average(Sheets("A").Range(Cells(1, 1), Cells(30, 1)))
End Sub
文字列は割り算から除外されるよ
>>369 fornextで、一番右の文字列が半角スペースならそれを削除
を繰り返すとか
372 :
361 :2009/10/12(月) 18:59:32
>>371 データが2〜3万行くらいあって、シート数も決まってないので、For Nextは避けるつもりでいます。
列の数も予測できないので、D列を追加、"=TRIM(RC[-1])を書く、値をC列にコピペ、
D列削除でとりあえずつくります。
>>372 シート数が不定ならFor〜Each〜Next
データ数が不定ならUsedRange
という便利な機能がある
374 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 21:00:06
【1 OSの種類】 Windows Vista 【2 Excelのバージョン】 Excel2000 【3 VBAが使えるか】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 入力規則 リスト 配列 生成 質問ですが、入力規則に使うリストは配列で生成出来ないのでしょうか?例えば時間を6:00から30分刻みで6:30,7:00,7:30〜24:00まで生成するとかして、それを入力規則に使うとかですが。
Targetの使い方知らない離島の人、使い方覚えたかな?
>>367 >>371 Sheets("A").Range(Cells(1, 1), Cells(30, 1))
って書き方間違いだから気をつけたほうがいい。
Cellsにもシートを指定しないと。
377 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 22:13:32
>>374 一旦文字列に直さないとダメかも
入力規則のリストへの登録の仕方はマクロの記録で
>>375 空気嫁
>>377 ゴミ以下のBBSはご遠慮くださいませ
379 :
374 :2009/10/12(月) 22:28:06
>>378 参考になります。ありがとうございます。
380 :
名無しさん@そうだ選挙にいこう :2009/10/12(月) 22:36:43
>>376 勉強になりました。ご指摘ありがとうございました。
381 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 00:10:54
求人に「excel初級程度使える人」と書いてあったんですけど 初級程度ってどれくらいですか?
求人出してる所に聞けや・・・
>>381 ワークシート関数の使い方を20個以上暗記してること
>>381 書類作成と思う
罫線とグラフ、sum関数とaverage関数作れたら大体okじゃないかな
こう書くと「エクセルで書類を作るのはダメな奴」とか言われるんだろうなー
>>384 いや、大丈夫。Wordが腰抜けな分、Excelで作るほうが安全だから。
SUMとかIFとかVLOOKUPあとは実務で憶えればOKだろ。
average関数って何?w 仕事で一度も使ったことがない希ガス・・・
387 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 01:02:27
>>381 です。
みなさんありがとうございます。
安心しました。
あ、平均値かw 使ったこと無いな・・・www
平均以下だもんな (; ̄Д ̄)
平均値なんて、俺も今の仕事だと使わないな。 むかーし、昇級レポートで標準偏差を算出してたときに使ったくらいかな? もっとも、エクセルで標準偏差ならSTDEVPで済むけどね。
>>387 求人の条件でExcelと書いてある場合、一般に
>>384 の言うような書類作成能力を期待されていると思う。
「エクセルで書類を作るのはダメなやつ」なんだけど、ダメなやつは求人側にもたくさんいる。
>>391 だからわざとaverage関数なんて書いたんだけどねぇ
どうやらそこまでの意図は汲み取ってくれなかったようだ。
まぁ、関数より一枚の書類作成能力+入力ができるかどうかでしょ
オッサンとか未だにPCの電源の付け方知らなかったりするんだぜ
>>392 averageって何?って聞いてるやつもいるだろ?
Excel以前の問題だよね。
394 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 08:10:05
勃発の予感
(´ω`)
Excelは本来書類作成の道具ではない。方眼紙Excelは日本だけで広がっている怪奇現象。 それじゃExcelは何の道具かと言うと、合計を求める道具です。平均や標準偏差も求められるけど。
397 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 09:41:24
方眼紙はさすがに見たこと無いけど、 エクセルで文書作る会社は良くある 郷に入らば郷に従えってね
398 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 11:22:33
Yahooの競馬結果が今週より、エクセルへの外部データの取り込みをすると、 このweb クエリによって返されるデータがありません。・・・・と メッセージが出て取り込めなくなりました。 取り込み出来るようにするには、どうすば、いいのでしょうか? 教えてください。
399 :
299 :2009/10/13(火) 11:30:58
>>398 まずはそのページのURLを貼ってくれ
競馬にはまったく興味がないからどのデータが必要なのかわからん
401 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 11:59:28
>>397 > エクセルで文書作る会社は良くある
> 郷に入らば郷に従えってね
バカを真似る必要はない。
例えばわざわざ電卓で計算してからエクセルに入力しているやつもいる。
やりたい内容によってワードでやるべき仕事はワードで正しく使いましょう。 エクセルはエクセルで正しく使いましょう。 ワードを正しく使っててもエクセルで間違った使い方してるおっさんも多いんだよな。 いくらエクセルが計算が得意だって無駄な計算させまくりじゃいかんぜよ。
>>401 ページ全体を取り込むのではなく、成績表など必要な部分だけを取り込むようにするという手もある。
理想論とか寝言は就職して同じ会社に4年以上勤務できた人だけ言ってね。 仕事のできない人は何言っても説得力がないから。
子供の夢壊すなよ。そっとしといてやれ
VBAを使ってVBAのコードを書くことは出来るんでしょうか? これで何がしたいというわけではないのですが、もしできる方法があれば教えてください
409 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 15:37:03
>>405 成績表など必要な部分だけを取り込むようにするという手もある。
教えて頂けないでしょうか。
>>408 作るだけならテキストファイルに書き出して拡張子をbasにする
>>410 おお、テキストファイルに書き出せばよいのですね
ありがとうございました
>>406 定年まで勤めたのにまったく駄目なやつもいるから的外れ。
エクセルだけが評価の対象かよwww
415 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 17:37:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 COUNTIF 文字列 変数 EXCEL2000 よろしくお願いします Sheet1とSheet2がありSeet1のCells(1, 1)に りんご という文字列が入ってます Sheet2の1列にはCells(1, 1) みかんCells(1, 2)ぶどう…などさまざまな果物名が文字列入ってます りんごもどこかにあります Worksheets("Sheet1").Select Dim 変数箱 As Variant 変数箱 = Cells(1, 1) 'りんご Worksheets("Sheet2").Select Cells(2, 1) = "=COUNTIF(R[-1]," & 変数箱 & ")" としてもかえってくるCells(2, 1)の値が0になってしまいます 変数箱の中が りんご ではなく 1234 なら問題なかったので Cells(2, 1) = "=COUNTIF(R[-1],"" & 変数箱 & "")" "を増やしてもだめでした どのように記述すればいいのか教えてください
>>413 本当にだめなやつは定年前に辞めることになる。
Excelとまったく縁のない仕事の方が多い。
ここまで親切に書かないとわからないのかねえ…
>415 .FormulaR1C1
419 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 21:17:02
VBAは最近使えるようになってきた、初心者です。 ■本見てると”VB”というのをみるのですが、VBAみたいにエクセル持っていれば使用できるものなのですか?? あとVBAとの違いを簡単に教えてください。すみませんがお願いします。
VBとはビジュアルベーシック エクセルについてるVBAはVBの一部だよ VB6までは有料でVBAともかなり似てたんだけど、VB.NET(VB6の次のバージョン)になってからはがらりと変わった ちなみに無料 プログラミング初心者にはかなりオススメ
VBAが「使える」ようになってきたならこんな質問はしないと思うが・・・
fornextでも覚えて舞い上がってるところなんでしょう 距離を置いて暖かく見守ってあげましょう
423 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 22:22:36
>>419 >>本見てると”VB”というのをみるのですが、VBAみたいにエクセル持っていれば使用できるものなのですか??
斬新な発想だwww
ここ雑談スレじゃないから。雑談したいなら他所いってね
総合だし面倒みよう
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可(スキル不足ですみません) 関数について全くの初心者なのですが、下記のようなものは関数で作れますか? 答えが正数であれば、切り上げ(ラウンドアップ)、答えが負の数字であれば切り捨て(ラウンドダウン)。 多分、IF関数とを組み合わせれば作れるのだと思うのですが、どうしてもうまくいきません。 教えてもらえないでしょうか。宜しくお願いします。
=-INT(-A1)かな
428 :
名無しさん@そうだ選挙にいこう :2009/10/13(火) 23:58:56
A1<0じゃ判定できなかったっけ?
=IF(A1>0,ROUNDUP(A1,1),ROUNDDOWN(A1,1))ってことじゃね?
>426 =TRUNC(A1)
431 :
430 :2009/10/14(水) 00:02:32
正数は切り上げか・・・スマン
2行目がタイトルになってるシートがあります。マクロで、オートフィルタの抽出で コピー&ペーストするとき、該当するデータがあれば問題ないですが、 該当するデータがないときにタイトルをコピーしてしまいます。 どんな対策をすればいいですか? Range("A3", Range("H65536").End(xlUp)).Copy
>>432 いきなりコピーせずにデータがあるかないか判定する
434 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 01:28:57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 excel datedif うるう年 バグ 初心者ですいません 仕事の関係で期間を日割りで求める計算式を作成したいのですが、 datedif関数だと、うるう年の関係でバグが起きて日数が1日ズレてしまいます この問題を解消するためにネットで検索していくなかで、以下のエクセル式を発見したのですが、 これは月単位も入っており、私が求めている「○年と○日」という回答は得られません =IF(DAY(開始日+1)=1, DATEDIF(開始日+1,終了日+1,"y")&"年" &DATEDIF(開始日+1,終了日+1,"ym")&"ヶ月" &(終了日+1-EDATE(開始日+1,DATEDIF(開始日+1,終了日+1,"m")))&"日" , IF(AND(DAY(終了日+1)=1,DAY(開始日)>DAY(終了日)), DATEDIF(開始日,終了日,"y")&"年" &(DATEDIF(開始日,終了日,"ym")+1)&"ヶ月0日" , DATEDIF(開始日,終了日,"y")&"年" &DATEDIF(開始日,終了日,"ym")&"ヶ月" &(終了日-EDATE(開始日,DATEDIF(開始日,終了日,"m")))&"日")) 可能であれば、誰か教えていただけると助かります お手数お掛けして申し訳ございません
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 文字列操作 Excel ━━ hogeaaa sagebbb abcdaaa dcabbbb ━━ と言う表を入力情報として、"aaa"を 含む行だけ抽出して、 ━━ hogeaaa abcdaaa ━━ と言う出力を得たいのですが、 何かいい手は無いでしょうか ※ 入力と出力は別シートでも問題はありませんが、 入力情報のレコード数が一定ではないので、 出力シートのすべてのセルに IF(RIGHT(出力シート!A1,3)="aaa",出力シート!A1,"はずれ") みたいな関数を埋め込んで、フィルタで除外する・・・ と言うようなやり方は避けたいです
436 :
435 :2009/10/14(水) 01:34:35
質問文中の関数が間違っていました・・・ IF(RIGHT(出力シート!A1,3)="aaa",出力シート!A1,"はずれ") ではなく、 IF(RIGHT(入力シート!A1,3)="aaa",入力シート!A1,"はずれ") です。。。 恥ずかしい
>>435 元のデータに対してオートフィルタで「aaaを含む」
結果を別シートにコピペ
438 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 02:59:40
>>434 ヒント 年数差と日数差を分けて考えるのがポイント
(1) 年数差の求め方
=DATEDIF(開始日,終了日,"y")
(2) 開始日の月日>終了日の月日 である場合の日数差の求め方
=DATEDIF(DATE(YEAR(終了日)-1,MONTH(開始日),DAY(開始日)),終了日,"d")
(3) 開始日の月日<終了日の月日 である場合の日数差の求め方
=DATEDIF(DATE(YEAR(終了日),MONTH(開始日),DAY(開始日)),終了日,"d")
上記をIFで分岐させたり、&でつなげればなんとかなるでしょう。
'というか、その参考にした式が既にバグッてるんだが…
'終了日を2008/2/28とした場合に、開始日に2007/1/29〜2007/1/31の
'どれを指定しても結果が「1年1ヶ月0日」になるぞ。
>>434 こうかな? A1=開始日、B1=終了日として
=DATEDIF(A1,B1,"Y")&"年と"&B1-DATE(YEAR(A1)+DATEDIF(A1,B1,"Y"),MONTH(A1),DAY(A1))&"日"
440 :
439 :2009/10/14(水) 03:18:55
よく見たら
>>439 にはバグがあるな。もう眠いから誰か任せた。
441 :
426 :2009/10/14(水) 05:41:23
>>426-431 さん
ありがとうございます。自宅ではofficeがないので、明日試してみます。
助かりました。
442 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 06:27:36
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】否 200行ほどの足し算がしたくて201行目にシグマをしたんですが、 結果が"2E+6"と表示されて正しい結果になりません。 計算したり数字は全て4桁から5桁です。 宜しくお願いします。
443 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 06:43:29
>>442 シグマをしたというセルの表示形式を標準にする。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい(初級者) 【4 VBAでの回答の可否】 可 3点アドバイスいただければと思います。 よろしくお願いします。 ●他のセルの状態を見て入力(コピーによる上書き含む)を 制限することはできますでしょうか? (例) A1セルに入力がないと、B1セルおよびC1に入力ができないようにする。 ●セルに設定した入力規則をコピーによる上書き時にも 有効にすることはできますでしょうか? (例) ・B1セルに「長さが10と等しい」の入力規則を設定。 ・A1セルの値は20(長さ2)。 ・A1セルをコピーしてB1セルに貼付け。 ・入力(ペースト)を抑止。(エラーメッセージ出力) ●入力規則で全角の入力を抑止することはできますでしょうか? (例) ・C1セルに「リスト(値:1,2,3)」の入力規則を設定。 ・C1セルに全角で1を入力。 ・入力(ペースト含む)を抑止。(エラーメッセージ出力)
446 :
409 :2009/10/14(水) 11:27:44
>>445 自分で試してみたのかい?
色々やってみれば分らなくても出来るはずだが。
まず入力規則に数式を設定出来るだろ?
B:Cを選択して、入力規則で=$A1<>""とでもすりゃいい。
コピー、形式を選択して貼り付けに入力規則もあるはずだ。
全角を抑止ももちろんできるが、日本語入力をオフ(英語モード)にした方が簡単
参考までに日本語入力は入力規則のメニューにある。
449 :
409 :2009/10/14(水) 11:59:23
>>411 やってみましたが・・・
リクエストされたアイテムが見つかりませんでした。HTTP/1.0 404
となります。
>>449 >>404 にも書いたように、クエリファイルかスクリプトを修正しないとだめだよ。
そのままだとアドレスの最後の「/」が抜けるから。
誤爆ですすいません
俺が買った時よりだいぶ安いんで、ちっとも喜べない
Excel2003です 日付の入力で、例えば A1にH22.12 A2にH21.12 のように年月をたくさん入力した後 昇順の並べ替えしようとしても上手くいきません どうやったら、昇順に並べ変えられるのでしょうか
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ちょっとだけ 【4 VBAでの回答の可否】 是非w B2セルに D:\Excel と入れ、その中に test というフォルダを新しくつくり、 集計したファイルをその中に入れたいんですが、2回目に実行すると 「パス名が無効です」と怒られてしまいます。 「既に test フォルダがあったら、次の人どぞ〜」って感じにするには どうすればいいですか? Sub test() MkDir Range("B2") & "\test" End Sub
>455 on error resume next 必要に応じてエラーコードで分岐させる。
>>454 「H21.12」が日付と理解できるのは人間だけで、Excelは単なる文字列型と認識する。
データの全貌がわからないとなんとも言えないけど、とりあえず「H08.06」のように
年、月を必ず2桁で入れるようにすれば整列できるようになる。
458 :
455 :2009/10/14(水) 21:12:08
>>456 それをやると、次にエラーが出たときヌルーされちゃうんですけど・・
>>458 ちっとは考えろや
On Error Resume Next
MkDir Range("B2") & "\test"
On Error GoTo 0
この3行で1セット
460 :
SUBMITできない :2009/10/14(水) 21:30:51
ジャバスクリプトで書かれている・・・ SUBMITできますか?
461 :
SUBMITできない :2009/10/14(水) 21:33:00
>>286 です。
EXCELから競艇自動投票したい。
462 :
454 :2009/10/14(水) 21:41:57
>>458 ありがとうございました
できるようになりました
463 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 21:46:11
>>455 テストしてないけどこんな感じ
Sub test()
Dim strDIRNAME
strDIRNAME=Range("B2") & "\test"
If Dir(strDIRNAME, vbDirectory) = "" Then MkDir strDIRNAM
End Sub
464 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 21:56:44
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 xml 編集 XMLスキーマ スタイルシート XMLスキーマ、スタイルシート つきのXMLファイルをExcelで編集したいんですが、 「XMLシートとして開く」だと新しいブックが開かれてしまい、 それを保存しても元のファイルにあったXMLスキーマやスタイルシートに関する情報が 失われてしまいます。 Excel 2007だと元のファイルがスキーマやスタイルシートに関する情報を保存したまま 編集できたりするのでしょうか? スキーマ自体やドキュメントは、validateであることを確認しています。 また、スキーマは入れ子等を含まず、ドキュメントに対応付け可能であることも確認しています。
465 :
455 :2009/10/14(水) 21:58:23
>>463 test フォルダがあるときはOKですが、無いときは実行時エラー76が出て
Then MkDir strDIRNAM が黄色くなります。
ググってみてるんですが、Dir(フォルダパス, vbDirectory) の 戻り値 って何でしょう?
>>465 ごめん変数の名前最後E抜けてた。
Dir(strDIRNAME, vbDirectory) でstrDIRNAME の文字列型の値を返してる。
それが""ならフォルダはないってこと。
Sub test()
Dim strDIRNAME
strDIRNAME = Range("B2") & "\test"
If Dir(strDIRNAME, vbDirectory) = "" Then MkDir strDIRNAME
End Sub
Excel2003です 年月を入力しようと思い2010/11と入力しエンターを押すと 2010/11/1と入力されてしまいます 年月日のうち日が勝手に入力されないようにするには どうしたらいいでしょうか
469 :
455 :2009/10/14(水) 23:30:17
>>466 いろいろ調べてたら時間が掛かってしまいました。
ご丁寧に回答していただき、ありがとうございました。
>>459 素敵です♥
470 :
名無しさん@そうだ選挙にいこう :2009/10/14(水) 23:35:05
474 :
名無しさん@そうだ選挙にいこう :2009/10/15(木) 00:18:05
yyyy/m としても、セルの値自体は 2009/11/01になるのでは? 文字列にすれば、値も 2009/11 になるので、こちらの方がいいような…
その辺は質問者次第でしょ
>>475 ご冗談をwww
質問者がそんなこと理解してる訳無いじゃんw
>>476 うんまぁ俺もそう思うんだけど
質問者はほんとうに「年月日のうち日が勝手に入力されない」ことだけを望んでると思うから
何故俺がそう思うかというと、書式設定の中でそういう設定が無いからね
どっちでもいいんじゃないかな
あまり細かいことを言うとまたスレで大戦が起きるだけのようでな
>>468 の件はおいとくとして、質問者次第なんていうとえてして悪い方法を採用しがちだよなぁ。
すいません、質問させていただきます。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 最小値 名前 毎日の営業成績管理の表を作成しています。 作成中の表での例えはややこしいですので、最も簡略化した例えで書きますと、 Aさん 80点 Bさん 40点 Cさん 70点 Dさん 40点 Eさん 40点 というテストの点があったとして、最低点を取った人の名前を出したいのです。 MIN関数やRANK関数やINDEXを組み合わせて挑戦してみたのですが、「同点最下位の人」が多数いる場合、 一人の名前(例で言うとAさんの名前のみ)しか出せませんでした。 何かいい方法はありませんでしょうか? よろしくお願いします。
>一人の名前(例で言うとAさんの名前のみ)しか出せませんでした。 ↑Bさんの名前のみ、ですね。訂正いたします。
>>479 オートフィルタを使う。
作業列を用意して、最低得点の人はそこにフラグを立てておけばよい。
>>479 単純に得点でソートするだけでもよい。
関係ない行は非表示にしたらよい。
484 :
名無しさん@そうだ選挙にいこう :2009/10/15(木) 09:40:37
質問させてください。 仕事で使う関数だけ独学で学んだだけなので初心者です。 列ごとの最小値が入力されているセルの色を変えたいのですがどうすればいいでしょうか? 1列や2列などなら条件付き書式で一列づつやり可能なのですが。 列の数が数百とあり一列一列やっていくのは時間がかかるので全てを一度の操作で済ませたいのですがやり方がわかりません。 A 50 30 20 35 B 20 25 30 15 C 90 95 80 85 D 55 60 60 75 仮に上の図ならA列は20が赤くなり、B列は15、C列は80、D列は55が赤くなる これを一列一列するのではなく一度にやりたいのですが何かよい方法はありますか? 【1 OSの種類 .】 VISTA 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 VBAがわかりません。 【4 VBAでの回答の可否】 否 【5 検索キーワード 】条件付き書式 色 IF 列
>>484 A1セルの条件付書式で「数式が」
=MIN(A:A)=A1
後は下のいずれかを実行
・右クリックでオートフイル、「書式のみ」
・コピーして右クリックで形式を選択して貼り付け。「書式」を選択してok
ただ条件付書式のみコピーはできないので、フォントサイズや色が違うとコピーされてしまう
残念ながら会費する方法はVBAしかない。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 初心者レベル 【4 VBAでの回答の可否】 可 Book1は商品の台帳で、約5000行あります。Book2のB列が歯抜けになっており Book1の商品名に合致した数値を入れるとき、Forで1行ずつチェックしていますが、 多いときには20,000行くらいのシートが50枚くらいあり、時間が掛かっています。 効率よく埋めるには、他にどんな方法でやればいいでしょうか? 以下の例では、Book2のB2へは120.25、B4へは50.02が入ります。 Book1.xls A B C 連番 商品名 数値 1 りんご 120.25 2 みかん 50.02 3 ぶどう 83.63 4 いちご 150.01 Book2.xls A B C 連番 数値 商品名 1 150.01 いちご 2 りんご 3 120.25 りんご 4 みかん
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP Pro 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 行 半分 ずらす などで検索 特定の行だけを半分ずらしたいのですが方法が分かりません 例えば A A A A -------------- B B B B -------------- C C C C というようなものを A A ------ A --- B B --- ------ B --- C C ---- ------ C --- ---- というずらし方をしたいのですがどうやるのでしょうか?
489 :
479 :2009/10/15(木) 22:34:39
皆さんいろいろとありがとうございます。
なかなか慣れないもので苦戦しております。
作成中の表は
>>483 の例でいいますと、最終的にはB,C,D列は全部非表示にします。
そして、最低得点者の名前のみを、例で言えばA1に「Bさん」、A2に「Dさん」、A3に「Eさんと」表示したいのです。
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 できれば関数で(複数の列の値を変更して直ぐに反映された表を確認したいので) 【4 VBAでの回答の可否】 関数で無理でしたらVBAでも可です。 IF関数を使って24時またぎの表を作ろうと思っていますが24時を過ぎると表示されません。 例)午後19時から午前3時まで、「■」を使った10分刻みの表を作るとします。 下記関数を使用し(予め、ある時刻のセルに■を表示させる関数を入力しておき) A7に19:00B7に3:00と入れると表示されません…23:50までは正常に表示されます。 何か方法は無いでしょうか、よろしくお願い致します。 使用している関数 =IF(AND(A7<=TIME(23,40,0),B7>=TIME(24,50,0)),"■","")
491 :
490 :2009/10/15(木) 23:27:14
10分刻みなのでこうでした =IF(AND(A7<=TIME(23,40,0),B7>=TIME(23,50,0)),"■","")
>>490 A7の方が大きい場合B7は翌日だと判断して1を足す
=IF(AND(A7<=TIME(23,40,0),B7+(A7>B7)>=TIME(23,50,0)),"■","")
本来はこんなことせずに最初から日のデータも入れておいた方が良いと思うけど。
493 :
490 :2009/10/16(金) 01:19:40
>>492 汎用的に使いたいので日時を指定せずできればと思っています。
せっかくご教示頂きました関数で試しましたが、これだと常にセルが
塗りつぶされている状態になり、正常に動作しないようですが
ちなみに1を何処に+すればよいでしょうか
完成イメージですが、横に延びるグラフにしたいです。
A7 19:00と入力
B7 3:00と入力
とすると同一行に時刻を埋め込んだセルのみが■■■■■■■■■■というように
塗りつぶされる感じです
R7 =IF(AND(A7<=TIME(23,40,0),B7>=TIME(23,50,0)),"■","")
S7 =IF(AND(A7<=TIME(23,50,0),B7>=TIME(24,0,0)),"■","")
T7 =IF(AND(A7<=TIME(0,0,0),B7>=TIME(0,10,0)),"■","")
U7 =IF(AND(A7<=TIME(0,20,0),B7>=TIME(0,30,0)),"■","")
・・・・
>>487 A,B,C間にそれぞれ一行ずつ空けてその後ずらしたい列をカット&コピーで
一行ずらしてやっとけ。
>>493 時間*■の個数でいいのかな。めんどくさいから全部作りかえるよ
=REPT("■",ROUND(((B7>A7)*(B7-A7)+(B7<=A7)*(B7+1-A7))*24,0))
>>486 配列に入れて最後にセルに戻す
再計算や描画を一時的にとめる、など
【1 OSの種類 .】 WindowsXP home edition 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 参照 挿入 リンク イメージ オブジェクト など 同一ファイル内シート、または別ファイル内シートの中にある一部(セルで指定)を 参照してイメージとして挿入するという機能があったと思うのですが やり方がわかりません。 色々いじってみましたが [挿入]の[オブジェクトの挿入]、[ファイルから]という指定がもっとも近い 機能でした。(ドラッグで挿入したイメージをサイズ変更できる) 初歩的ですみませんがよろしくお願いします。
497 :
496 :2009/10/16(金) 08:47:26
すみません、自己解決しました。
【1 OSの種類 .】 WindowsXP Pro SP2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Jan 1月 文字列 "Jan1"という文字列のあるテキストファイルを読み込むと"1-Jan"となってしまいます。 読み込んだあとに文字列に変更しても既に数字データになっているし テキストファイルを直接"jann1"としてから読み込んだあと エクセル上で文字列に変更しても、"Jann1"→"Jan1"と置換した時点で 日付属性に戻って"1-Jan"になってしまいます。 (置換オプションで文字列を指定すると、なぜか最初から数字データになります) 一つずつ直接変更すれば文字列のままなんですが、大量にあるため 現実的ではありません。何かよい方法はないでしょうか
>>498 書式設定で対象セルを文字列にしてから置換するのがいいかな
>>499 文字列にしてあるんですが、不思議なことに置換すると何故か日付に変わってしまうんです。
>>500 置換が出来ないぜ・・
テキストファイルは書式設定が無いから、
書式設定を設定しても一旦保存してから開くと必ず解除されるよ
解決策として、A1に入ってるとして、
B1=TEXT(A1,"mmmd")
もしくは
B1=TEXT(A1,"@")
でどうでしょうか?
>>501 テキストファイルをエクセルファイルとして保存してやっています。
やはり関数使うしかないですかね。
ただ該当の文字列はランダムに多数存在しているので
結局手作業になってしまうんですよね。
文字列の書式設定が変わらない方法があるといいんですけど。
引き続き模索してみます。レスありがとうございました。
>>502 まず新規ワークシートを開いて全セルの書式を文字列にしておく。
テキストファイルをメモ帳で開いてすべて選択→コピー、Excelに貼り付け。
タブ区切りならそのまま貼り付けられるので終了。コンマ区切りなら区切り位置→コンマ。
Excel2003について質問なんですが、例えば6月のあるデータと7月のあるデータ を='6月'!C52+'7月'!C64のような計算式にして導く場合はどうすればいいでしょうか? 収支決算を作りたいので楽な方法がいいです。
>>503 実はその方法でもやっぱりダメだったんですが、ふと思いついて
引き続き同じクリップボードを貼り付けてみたらうまくいきました。
元データ
jan1,jax1,jay1
jan2,jax2,jay2
jan3,jax3,jay3
1回目(貼り付け後、区切り位置調整)
1-Jan jax1 jay1
2-Jan jax2 jay2
3-Jan jax3 jay3
2回目(1回目の作業のあとそのまま貼り付け)
jan1 jax1 jay1
jan2 jax2 jay2
jan3 jax3 jay3
これで何とかミスを誘発する手作業無しに行けそうです。
いろいろありがとうございました!
>>504 どうしようもこうしようもそうするしかないんじゃいか
シートの内容が分かればindirectとmatch、sumif辺りを組み合わせたりもできるだろうけど
507 :
LUIGI :2009/10/16(金) 18:14:40
508 :
490 :2009/10/16(金) 19:21:04
>>495 すばらしいです!できればこれを1セルに1こ■と言う風にして
シフト表を作るとして10分刻みでこんな表にしたいんです。
出勤 退勤 18 19 20 21 22 23 24 1 2 3 4 5
19:00 2:00 ■ ■ ■ ■ ■ ■ ■ ■
22:00 4:00 ■ ■ ■ ■ ■ ■ ■
よろしくおねがいします。
>>504 ”収支決算シート”を作成してそこにその計算式を入れればどうでしょうか?
510 :
名無しさん@そうだ選挙にいこう :2009/10/16(金) 21:20:59
>>498 エクセルへの読み込み方
まず、エクセルの白紙シートで属性を文字列に変える
読みたいテキストファイルをメモ帳で開く > 全選択コピー > エクセルに貼り付け
置換した時点で属性変えたくないなら、置き換え先の文字の頭に ' を入れる。
"Jann1"→"Jan1"なら
置き換え元 Jann
置き換え先 'Jan
みたいに
>>505 横書きの日本文に「,.」を用いるのは朝鮮人だよ。日本語は横書きでも「、。」が正しい。
韓国語では、縦書き文書では「、」が用いられ、横書き文書では「,」が用いられる。
この用い方は統一されているため、縦書き文書に「,」を、横書き文書に「、」を用いるのは誤り。
だから日本語で書くときもカンマピリオドの癖が出るんだろうね。
常にセルに=がある前提にしたい。 つまり、=1+1と入れなくて、1+1と入れれば計算されるようにしたいということ。 目的 コピぺして計算するときに、いちいち全てのセルに=を入れていく作業を無くしたい。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 =SUM(A1:B2)とかができる程度のレベル 【4 VBAでの回答の可否】 検索して理解できる程度の内容なら可 【5 検索キーワード 】 エクセル イコール = 前提 据え置き等
>>512 逆に先に=をセルに入れておくというのはどうですか?
並びのセルなら一つ=を入れておいてオートフィルタでコピーペーストして
おくとか。
>>511 これは朝鮮とか関係ない。
日本語の横書きは句読点の使い方に流派がある。
理系の専門書なんかコンマ派が多いぞ。
>>512 WorkSheetChangeで入力された文字列を数式に置き換える
516 :
512 :2009/10/17(土) 03:52:01
ありがとうございます。試してみます。
>>511 韓国語の横書きでコンマを使うのは日帝残滓でしょう。つまり日本統治の名残です。
韓国人に指摘してあげたらどうでしょう。日本なマネすんなと。
519 :
512 :2009/10/17(土) 05:01:27
>>513 =をすべてのセルに入力後、コピぺしたところ、数式が上書きされて意味がありませんでした。
オートフィルタを利用したコピぺというのが良く分かっていない可能性が高いので、
オートフィルタ コピーで検索した。
そして、オートフィルタに=を入れてそれらを全セルにぶち込んだが、特に結果が変わらない。
というか、オートフィルタ自体が上書きされて消される。
そして、オートフィルタをセル行・列に入れても、抽出するだけで良く分からない状況です。
できれば、操作含めて教えてください。
>>515 は現在検索し、知識追加中です。
どうやら、VBAについては全く分からなかったようで、そこから勉強しています。
また、VBAの使い方までは行きましたが、いまだコードの書き方を理解していません。
このまま知識を蓄えれば行けるんでしょうか?
520 :
512 :2009/10/17(土) 05:10:18
521 :
512 :2009/10/17(土) 05:16:07
で、出来たーーーお休みなさい。どうもありがとうございました。
>>511 実は公務員系の一部で横書きがコンマになるソフトがあるんだな、これが
何ていうのかはは知らないけど
>>508 C6から右に数字が入っている前提で
C7=IF(AND(($A7*24)<=IF(C6<12,C6+24,C6),((($B7+1)*24))>=(IF(C6<12,C6+24,C6))),"■","")
韓国とかなにいってんの 公務文書とかは書き方が法律で決まってるんだけどな
(;゚д゚)ァ
525 :
490 :2009/10/17(土) 13:43:12
>>518 >>522 大変参考になりました。ありがとうございました。
これを元に自分でも勉強してみます。
横書きのカンマはJISで決まってるし文部省もそういう基準を示してる。 公用文も正式にはカンマだが、だれも守らないだけ。ぐぐればすぐわかることだが。
文科省管轄公務員の友人もカンマピリオド使ってたわそう言えば
528 :
522 :2009/10/17(土) 18:41:29
テキトー書いて失礼しました。ソフトと思い込んでいましたよ 法律っつーか最近そういう基準があるんだね
最近というか、基準が出たのは昭和25年だけどな
530 :
名無しさん@そうだ選挙にいこう :2009/10/17(土) 21:57:09
【1 OSの種類 .】 WindowsVistaUltimate 【2 Excelのバージョン 】 Excel2k 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel vba 処理 プロシージャ 複数のプロシジャを次々実行していくようなとき Call test1 Call test2 Call test3 と書いて実行していますが シェルスクリプトのように test1 && test2 && test3 のようにシーケンシャルに実行させる方法はあるのでしょうか? それともフラグを立てて確認するしかないのでしょうか?
初歩的なことで質問です。 A1に5.5、A2に5.5、A3に=A1+A2と入れると11になります。 A1とA2を Comma [0] にして表示をそれぞれ6にしたとき、A3の表示を12(6+6なので)に したいのですが、どのようにすればいいでしょうか?
>>531 表示と同じようにroundしてから足す
A3 =SUM(ROUNDUP(A1,0)+ROUNDUP(A2,0))
=IF(A1/10>=0.5,A1+0.5,A1)+IF(A2/10>=0.5,A2+0.5,A2)
535 :
533 :2009/10/17(土) 22:18:01
”up”いらんかった
>>531 オプションー計算方法の表示桁数で計算にチェック
ただ、色々と危ない木はするけど
537 :
531 :2009/10/17(土) 23:17:36
>>532-536 ありがd!!
=SUM(ROUND(A1,0)+ROUND(A2,0))でうまくいきました。
SUMもいらんがな
好きにせい
好きだ。(はー
そう言えば =sum(A1+A2) とかなんでもsum付けるオヤジが会社にいるけど いつツッコミ入れればいいのか、考え中
542 :
名無しさん@そうだ選挙にいこう :2009/10/17(土) 23:50:57
複数の数字が順番バラバラにセルの上にあるのですが、 例えば、1がn個 2がn´個と表をまとめたいのですが どのようなツールをつかえばいいのですかね ご指導よろしくおねがいします。
ピボット
546 :
名無しさん@そうだ選挙にいこう :2009/10/18(日) 00:13:19
>>544 理解しました。
ありがとうございます。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 セルの中に数式や、別シートのリンク?(=上期!B5)が書かれています。 数式の結果ではなく、数式そのものを表示させることは出来ますか?
548 :
名無しさん@そうだ選挙にいこう :2009/10/18(日) 01:33:07
>>547 ツール>オプション
表示タブの中の、数式ってのにチェック
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 条件 結合 あるセルにAと入力した場合、他のセルを結合してそこにAと表示させる事は可能ですか?
>>549 可能
その程度の事はちょっと試せば判りそうな事だけど、手元にエクセル無いんだ
ろうなと思って手元にエクセルがある私からのレス。
>>549 条件によって結合したりしなかったり、というのならVBAが必要
>>549 あるセルをA1とB1とする
=a1&b1
=CONCATENATE(a1,b1)
>552 まさかそれを「結合」と言うのか?
>>553 お、スマン。質問をちゃんと読んでなかった
>>549 >>552 は忘れてください
で、セルの結合をした場合、左上のセルの文字列や数式が優先される
ただし範囲内で入力されている箇所が一箇所だけだとそれになる
他のセルを先に消しておくのが早いかな
じゃなきゃ先にコピーしておいて、結合してから元のセルにコピーしなおすなど
>549 「あるセルにAと入力した」というイベントから「セル結合+当該セル範囲に参照式設定」を行う という意味にもとれる。だったらChangeイベントとマクロの自動記録でできたコードをちょっと修正 だけでいいと思う。 それとも単なる結合セルへの参照式設定のことなんだろうか?
結合済みのセルに数式を入れる程度のことなら 普通に何も考えずにやってしまうレベルの話だと思わんか
>>548 547です。
ありがとうございmあした。
558 :
名無しさん@そうだ選挙にいこう :2009/10/18(日) 21:02:37
またか
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel20003 【3 VBAが使えるか .】 少々 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 行数が一定しないリストで、最右列にあるデータの列番号と行番号を得るにはどうすればいでしょうか?
>>559 =MAX(COLUMN(1:1)*(0<>(1:1)))
と入れてCtrl+shift押しながらenter
1:1って部分は1行目から1行目って意味だから2行目なら2:2と買えておくれ
561 :
549 :2009/10/18(日) 23:44:48
みなさん有難うございます。 Changeイベントというのが自分には出来そうにないので、今回は断念します。
562 :
名無しさん@そうだ選挙にいこう :2009/10/19(月) 00:40:14
>>562 ハイパーリンクの編集画面からコピペする以外だとリンク先を取り出すのはVBA使わないと無理
たとえばこんな感じ
Range("B1") = Range("A1").Hyperlinks(1).Address
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 一文字 変える 計算 シートが1,2,3と三つあり、シート1のA3×シート2のA3の答えをシート3のA3に、ということを、 A3B3C3・・・ A4B4C4・・・ A5B5C5・・・ ・ ・ ・ ・ ・ ・ ↑のように繰り返したいのですが、この場合、シート3のセルに1つずつ地道に入力していくしかないのでしょうか? 何か賢いやり方をご存じの方がいれば、ご教示願います。
567 :
564 :2009/10/19(月) 15:55:38
>>566 10×72のセルを、変える文字以外コピペして、カチカチ入力しました。地獄でした。
>>565 感動しました。エクセルって素晴らしい。
568 :
564 :2009/10/19(月) 16:02:19
>>564 >>565 興奮のあまりお礼をするのを忘れてしまいました。
お二方初歩的な質問にも関わらずレスどうもありがとうございました。
誰でも最初は初心者だからね〜 がんばってね エクセルが重くなってくると、テンポラリフォルダを消す+デフラグすると 速度動作が戻ることがある。というか戻った。動作が重いと感じたら試してみてください。
>>567 そうじゃなくて。
「変える文字以外」じゃなくて、セルをそのままコピペするんだってば。
たとえば
=A1+A2
みたいな式が入ってたとして、そのセルを隣にコピペするだけで
=B1+B2
に自動的に式が書き変わる。
範囲指定して一気に貼り付ければ、全部のセルに適切な数式が自動的に入る。
571 :
名無しさん@そうだ選挙にいこう :2009/10/19(月) 18:59:44
>>564 シート3のA3をダブルクリックしてセルに = を入力。
シート1のA3をクリックそして * を入力。
シート2のA3をクリック。Enter。
→ シート3のA3に答えがでる。そのセルからしたにオートフィルでおk。のはず。
572 :
名無しさん@そうだ選挙にいこう :2009/10/19(月) 19:04:11
追加 ABCもだしたいなら右に3つ分オートフィルして、 A3B3C3の答えをだして、A3B3C3を選択してそのまま3つまとめて下にオートフィル。
すんません、VBAに関して教えてください。 OS: WinXP,Vista Ver: Excel2003だが、2007にも使える対処法を希望します。 マクロで、#refのセルの扱い方について教えてください。 if range("A1") <> range("A2") then ... というときに、A1が #ref の場合、比較以前に「型が一致しません」と なってしまいます。 これを鑑みるに、A1が #ref かどうかという条件をまず入れたいのですが、 この比較ができません。 どのようにするべきでしょうか。
574 :
564 :2009/10/19(月) 22:09:53
>>569 いつか私も誰かに教えられるようにがんばります。
>>570 ああ・・・。そういうことでしたか。誤解してしまいました。すみません。
今試したら、ちゃんと書き変わってました。驚きました。エクセル素晴らしいです。
>>571 すごい。これなら自分で入力する文字をかなり減らせますね。これは色々な場面で使えてとても便利に違いない…
本当にみなさんどうもありがとうございました。すっかりオートフィルの虜です。
関数を使ってセル内の全ての空白を取る方法ありませんか? TRIMだと半角一文字の空白が残ってしまいます。
>>575 どうしても関数じゃなきゃだめなの?
置換じゃだめなの?
つーか、全ての空白は取れんだろ? 釣りか?
578 :
離島のサンデーPG :2009/10/19(月) 22:52:43
>>573 Sub a()
If Range("A1").Text = "#REF!" Then
Debug.Print "A1が#REF!です"
ElseIf Range("A2").Text = "#REF!" Then
Debug.Print "A2が#REF!です"
ElseIf Range("A1") <> Range("A2") Then
Debug.Print "同じではありません"
Else
Debug.Print "同じです"
End If
End Sub
>>575 =SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")
581 :
名無しさん@そうだ選挙にいこう :2009/10/20(火) 04:57:56
結果オーライ
>>580 ダメ出ししてるくせに、自分では答えられない馬鹿。
句点も打てないお前は、日本語の勉強をしろよ。
小学校すら行けなかったのか?
なんでそんなにいかってんだよw
そうだねw ↓次の質問どうぞ〜
587 :
名無しさん@そうだ選挙にいこう :2009/10/20(火) 08:33:34
EXCEL2003です。VBA使用可。 シート上にある複数のオブジェクト(画像)を全て選択する方法を 教えて下さい。 『[Ctrl]キーを押しながら、全オブジェクトをクリックする』は 除きます。 よろしくお願いします。
588 :
名無しさん@そうだ選挙にいこう :2009/10/20(火) 08:40:34
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 何度も出ている質問かもしれないですがすみません。 バージョン2007?拡張子xlsxのもので作成したファイルをxlsに保存しなおして それで、VLOOKUPを使おうとしたら、帰ってくる値がデタラメになってしまいます。 範囲指定を絶対参照にしたり、範囲に名前をつけてみたりしたのですが、できません。 どうしたらいいですか? すみません、よろしくお願いいたします。m(__)m
>>586 折角スルーしてんのに相手するなよぉ
>>587 編集→ジャンプ→セル選択でオブジェクト
ActiveSheet.DrawingObjects.Select
>>588 環境がないんで再現できないな
そのファイルをアップロードすることが可能なら原因を探ってみるよ
590 :
588 :2009/10/20(火) 08:53:21
すみません! 今、仮のデータで新しいシートでVLOOKをやってみても全然おかしい。orz どうなってるんだろう。。。 VLOOK自体が出来ない。 ほんとに困った。誰か助けて〜
591 :
588 :2009/10/20(火) 08:55:48
>>589 さん
ありがとう!
でも、バージョンとかの問題じゃなさそうですよね。。。
>>590 使い方間違えてるんじゃない
A1-A3に「あ、い、う」。B1-B3に「1、2、3」
=VLOOKUP("あ",A1:B4,2,0)
=VLOOKUP("い",A1:B4,2,0)
=VLOOKUP("う",A1:B4,2,0)
で試してみて
593 :
588 :2009/10/20(火) 09:17:37
>>592 できましたあ!
検索の型に0を入れなかったのです。(>_<)
ありがとうございました。
とても助かりました!!m(__)m
ひでぇw
俺も同じことやらかしたので批判はできねーんだぜ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少しなら 【4 VBAでの回答の可否】 なるべく使わずに 【5 検索キーワード 】 私女だけど、入力規則のリストで質問です>< リスト用の定義が2種類(定義A、定義B)があります。 B1でリストを使います。 ここで、 A1が「あ」だったら、定義Aを A1が「い」だったら、定義Bを リストとして使うことは可能ですか??
>>596 A1には「あ」「い」のどちらかを入力
A2=IF(A1="あ","定義A","")&IF(A1="い","定義B","")
B1のリスト元の値=INDIRECT(A2)
元の値にif使えるかと思ったが無理だったな
598 :
596 :2009/10/20(火) 11:01:32
>>597 INDIRECTかああああああああああああああああああああああああああああ
その発想はなかった。ありがとう><
599 :
587 :2009/10/20(火) 11:37:42
600 :
名無しさん@そうだ選挙にいこう :2009/10/20(火) 13:07:29
反復計算機能をマクロから呼んで数値計算をしてるんですが、 2日程度ほっておくとリソース不足云々といわれ、止まってしまいます。 データの入っているセルを増やすわけではないし、 どうしてこうなるのでしょうか?また、対処法があれば教えてください。 WindowsXPPro、Excel2007です。
601 :
名無しさん@そうだ選挙にいこう :2009/10/20(火) 13:15:27
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 「右クリックメニューが出ない excel」「xlbファイルがない」など よろしくお願いします。 先日から、エクセルにて右クリックメニュー及び上部メニューが表示されなくなりました。 右クリック窓が白い影のような状態で表示され、 文字などは見えず、適当な場所でクリックしても反応しない状態です。 この状態は割とあるらしく、xlbファイルが破損などで異常になった場合の症状で、 対処法としてxlbファイルを削除することで治ることが多いようです。 ところが、このxlbファイルが存在しないので困りました。 検索をかけても、直接C:\Documents and Settings\<ユーザー名>\Application Data\Microsoft\Excelにアクセスしても、 存在しないのです。 もちろん両方とも隠しファイルも含まれる・表示されるようにしてあります。 Office自体の再インストール、システムの復元も試しましたが無理でした。 こうなったらリカバリしかないのですが、 諸事情は省きますがシステム導入のためリカバリすると万単位でお金がかかることになってしまうで、 出来ればリカバリをせず解決できればと思い、こちらで質問させていただきました。 解決方法・アドバイスなどがありましたらどうぞよろしくお願いいたします。
603 :
601 :2009/10/20(火) 13:38:05
>>602 そのサイトを参照してxlbの異常で起きる不具合とあったので、
手順どおりxlbを探してみたのですがなかったのです。
* Excel 2003 の場合 : Excel11.xlb
* Excel 2002 の場合 の場合 : Excel10.xlb
* Excel 2000 の場合 の場合 : Excel.xlb
とあるので、普通は存在してるはずなのですが・・・
何かxlbファイルが構成される条件などがあるのでしょうか。
>>603 うちのマシンで探してみたら、Excel11.xlbは
C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel
というフォルダの中にあった。
Excel2000もインストールしてあるんだけどExcel.xlbはどこにもなかった。圧縮してあるんだろうか。
>>602 ありがとうございます。なんとかメモリの消費を抑える方法を調べてみます。
Wordでドキュメントをマクロでいじっていたら、同様にリソース不足になった その時の対処法は、こまめにセーブするで切り抜けたけど 同様の方法じゃダメかな?
607 :
601 :2009/10/20(火) 15:40:01
>>604 わからないですね…
が。
別にユーザーアカウントを作ることでいちおうは解決しました。
ということは、やっぱりdocument and setting/ユーザー名以下のどこかに、原因となるものがあると思うんですが……
>>603 ゴメン、隠しフオルダ検索してなかった
確かに
>>604 さんと同じ場所にあるね。ただしエクセル2000
思いつく方法は管理者権限で探して見る・・とか、別のユーザー名のフォルダを探してみるとか
それともそのファイルが無いことが問題なのかなぁ
あと、拡張子は表示してる?拡張子表示しないと多分検索にはひっかからない
609 :
名無しさん@そうだ選挙にいこう :2009/10/20(火) 16:37:13
さっきまで作業していたエクセルのデータが何故かとづぜん 今日の朝の時点のものに変わりました。 その時はCtrl+S と間違えてCtrl+Wを押してしまいました。 今日のうちに何度も保存をしていたのにそれがなくなってしまって困っています。 データを元に戻す方法はないでしょうか?
Ctrl+Wはウィンドウを閉じるシヨートカット ただ何度も保存をしてるなら別の場所に保存してるんじゃないか? 拡張子「.xls」でファイルを検索してみるとあるかも
612 :
601 :2009/10/20(火) 19:05:06
>>608 拡張子も表示してますね。
アカウントも管理者権限のあるものしか使ってなかったですし…
とりあえずは新規アカウントということで解決を見せたのでこの質問はこれまでにします。
ありがとうございました。
613 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 00:43:10
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル ウインドウ 別 表示 Excel2003で、複数のファイルを別ウィンドウで開く方法を教えてください。 例えばデスクトップ上に Excelの「A」「B」…という複数の エクセルファイルのアイコンがあったとします。 今までは 各アイコンをダブルクリックすることで、 それぞれ自動的に別ウィンドウが立ち上がっていました。 しかし、ある時突然同じウインドウでしか表示されなくなってしまいました。 もちろん特別な操作や設定の変更はしていません。 (同じ操作をしても別ウィンドウが立ち上がるのではなく、 既に開いているウィンドウの上に重ねて別ファイルのデータが表示される感じです。) この時、ファイル切替はデスクトップ最下にあるタブを選択・切替すること でしかできません。(AからBにタブを切り替えると Aは見れなくなってしまいます) またタブの右クリックで表示されるメニュー(重ねて表示等)は全てグレーアウトに なっているため どれも選択不可です。
614 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 00:44:10
【続き】 ネット上で複数解決方法を見つけましたが、 どれも意図するものではありませんでした。 ■並べて表示:同じウィンドウの中で 縦や横に各ファイルを並べて表示 →別ウィンドウではない為 問題外 ■「ツール」→「オプション」→「全般」→「ほかのアプリケーションを無視する」 →開かれているAで上記操作を行った後、デスクトップのBをダブルクリックで 開くと、別ウィンドウは立ち上がるため「別ウィンドウ」という点では 解消されますが、そのウィンドウ(B)にはデータが表示されていない(灰色の空excel) また全てのファイルを一旦閉じると、次回以降Aやその他のファイルをダブルクリックしても デフォルトで空Excelが起動するようになってしまう ■デスクトップ最下のタブで切替 →別ウインドウの表示ではない為問題外。切り替えると他のファイルが見れない ■「スタート」→excel起動、 「ファイル」→「開く」→「ファイル名を指定」 →別ウィンドウで起動するが、手間が掛かる ■excelツールバー「ウインドウ」→「新しいウィンドウを開く」 →「A」「A:2」…というように同じデータのファイルが 別ウインドウで開かれるだけなので問題外 ■タスクバーのプロパティから「同様のタスクバーボタンをグループ化」も 試してみましたが、タスクバーの「タブのみ」が別々になったりひとつになるだけで、 ウィンドウは別になりませんでした…
615 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 00:45:41
【続き2】 尚、ネットで検索した結果の中には 「Excelは元々 一つのウィンドウでしか開かないような仕様になっている」 との情報も見受けられましたが今まで「別ウィンドウで自動的に立ち上がって」いて ずっと普通に使ってきたので当てはまりません。 ネットで検索したどの方法も、解決になっていないものや スタートボタンから手順を踏むもの、 いちいちファイル名を指定して開くものなど 非常に手間がかかるものばかりで 大変困っています。 あくまで、今まで使い慣れた「ダブルクリックのみ」で 「複数ファイルを自動的に別ウィンドウ起動」する方法が知りたいです。 この困った状況の原因や、元の使い勝手に戻す為の設定方法をご存知の方、 是非解決方法を宜しくお願いします。 長文にて失礼いたしました。
ツール - オプション - 表示 の「ウィンドウをタスクバーに表示」かな?
>>613 他のアプリケーションを無視する
って項目が
つーる おぷしょん 全般 にある
言いたいことは分かった もしかしてブックごとに独立したウインドウで開きたいってことじゃね
619 :
617 :2009/10/21(水) 07:46:28
おっと失礼これではダメなのだな 俺の環境ではブックBは開くんだけどなぁ
>>618 簡単に言うとそうだな
で、それが617のオプションのはずだがうまくいかないらしい。そんな状態にはならないからわかんねーんだなー
どんな操作したのか知らんけど、元に戻したいんだったらリカバリしてみりゃいいんじゃねーの? あんたの元の状態なんてわからんし
ショートカット消したりしてないよな
625 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 13:39:53
>>621 リカバリは無理・・・会社のPCだもんで。
もちろんショートカットも消してない。
そもそもその動作自体がデフォルトではない状態なんだよ カスタマイズした後で不調になられても答えれる人は少ないだろう さっさとリカバリするかオプションをデフォルトにすればいいと思う ちなみにリカバリした後ならすぐに ■「ツール」→「オプション」→「全般」→「ほかのアプリケーションを無視する」 でそれまでの状態に戻せる
628 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 15:30:39
オフィスのアップデートもバージョンアップもしてないし、 カスタマイズを加えた訳でもなくて、 Excelの作業中に 途中から動作設定がいきなり変わる事ってあるのかな? その日の初め(PC起動時)とか MSのパッチ当てた直後とかなら まだ理解できるんだが・・・
>>628 ある
「ツール」→「オプション」→「全般」→「ほかのアプリケーションを無視する」
にチェックが入ってたことと、自動計算が手動計算になってたことはある
どこかでショートカットキーを押したのか、エクセルの機能かは知らん
ただ絶対に自分で操作はしていないのは自分がよく知ってるし、
それは君も同じことだろう
誰が悪いとか言うよりさっさと解決したほうが良いと思ふ
631 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 16:44:32
あるわけねーだろ アホくさ
>>630 直接の解決方法は知らないけど
CSVで保存した後、カンマをカンマ+半角スペースに置換してみるというのはどう?
634 :
名無しさん@そうだ選挙にいこう :2009/10/21(水) 16:55:08
お前がそう思うならそうなんだろ お前ん中では
>>633 おぉ、これで行けそうです
タイトルの中に","があった場合は各々対応しないといけないですがかなり楽に作業できそうです
ありがとうございます
いくつかブックを開いていたとき、"MENU" というシート名が入ってるブック名を TGTという変数に入れたいんですが、うまくいきません。 アドバイスお願いします。 Sub てすと1() For Each WB In Workbooks For Each WS In Worksheets If WS.Name = "MENU" Then TGT = WB.Name End If Next Next MsgBox TGT End Sub
>>636 俺もまだ駆け出しだが・・・
> If WS.Name = "MENU" Then
If WB.WS.Name = "MENU" Then
じゃね?
638 :
636 :2009/10/21(水) 21:37:09
>>637 実行時エラー'438':
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
となっります・・・
639 :
636 :2009/10/21(水) 21:37:55
x となっります・・・ o となります・・・
取り出したWB使わなきゃ For Each WS In WB.Worksheets
>>631 この子っていつも謝らない人だよね・・・
本当に実年齢聞きたい
小学生なら許す。
ただ将来しんどいから、誤れるだけのプライドはもてるようになった方がいいよ、とだけ
部下に謝ると、すごい人望付くよ
>>636 うちはあんたが書いたこれでうまくいってるヨン。
Sub てすと1()
For Each WB In Workbooks
For Each WS In Worksheets
If WS.Name = "MENU" Then
TGT = WB.Name
End If
Next
Next
MsgBox TGT
End Sub
644 :
636 :2009/10/22(木) 00:09:34
645 :
637 :2009/10/22(木) 01:11:50
>>644 空白返すのは名前が不一致
ループの中に次を書いて実行してみ
Debug.Print wb.name & ws.name
647 :
名無しさん@そうだ選挙にいこう :2009/10/22(木) 10:37:15
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 コメント セルに埋め込まれたコメントのようなものが編集出来ないのですが 編集するにはどうすればよいのでしょうか。 セルに赤い▲マークがないのでコメントとはちょっと違うみないなんですが・・・
>>354 超遅レスだけど、間違いなく消えてるのを確認
98だとC:\windows\temporary internet files\content.ie5\IFid6fig
というファイルに保存されていた。作業を終了させるとそのファイルも消滅
復元 というソフトがあれば解決できたかも・・
>>647 データ、入力規則
にある「入力時メッセージ」だな
>>648 そこにありました。
ありがとうございます。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ ”I4”のセルと”D1〜99”にデータを入力し”I4”と”D列”で演算させたいのですが 式を一つ作ってセルをドラッグすると下記のように”I列”も+1されていってしまいます。 =D1/I4^2 =D2/I5^2 =D3/I6^2 以下のようにしたいのですがなにか簡単な方法はありますでしょうか =D1/I4^2 =D2/I4^2 ・・・・
windowsXP excel2003 を使用しています グラフの横軸の目盛りの値を変えたいのですがどのようにすればいいのでしょうか? お願いします
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel 折れ線 NA 途切れさせる IF()で値を抽出した以下のようなデータを グラフで表示したいるのですが、 無効なデータを""にすると0として扱われ、 NA()にしても#N/Aの前後が繋がってしまいます。 IF()を使用した上で折れ線を途切れさせる方法はありませんか? 10 15 #N/A 又は "" 13 14
>>654 =""
を値でコピーしてもつながってしまった。VBAしか無理だろうな
ファイルがどういう風になってるか、そのifの式がどういう値を返すかで
マクロ自体も変わってくる
作るのは問題ないが、ファイルの様式がわからないと作れないのでアップロードをするか
詳細にそのファイルの内容を教えていただきたい
656 :
654 :2009/10/22(木) 17:48:02
>>656 7時すぎぐらいに作れると思う
とりあえずシート2のN/Aエラーを消せばよいかな?
659 :
654 :2009/10/22(木) 18:25:38
>>658 #N/A は消さなくてもいいので、
グラフの方をお願いします。
もちろんグラフを途切れさせるために必要であれば
その限りではありませんが。
660 :
離島のサンデーPG :2009/10/22(木) 19:21:12
>>636 なんかまた書きなぐったような無駄の多いコードですが
これでどうでしょ?
Sub ブック検索()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
Dim Sh As Worksheet
Dim StrWb As String
Dim MyPath As String
Dim ShCnt As Long
Dim TGT As String
Application.ScreenUpdating = False
Application.DisplayStatusBar = True
Set Wb1 = ThisWorkbook
MyPath = ThisWorkbook.Path
StrWb = Dir(MyPath & "\*.xls")
'つづく
661 :
離島のサンデーPG :2009/10/22(木) 19:22:24
>>636 >>660 のつづき
Do While StrWb <> ""
If StrWb <> Wb1.Name Then
Application.StatusBar = StrWb & "を開いています。"
Workbooks.Open Filename:=MyPath & "\" & StrWb
Set Wb2 = Workbooks(StrWb)
If Wb2.Sheets.Count >= 2 Then
For Each Sh In Wb2.Sheets
' Debug.Print "シート名は、" & Sh.Name
If Sh.Name = "MENU" Then
TGT = StrWb
MsgBox "ブック名は、" & TGT
End If
Next
End If
Wb2.Close
Else
Set Wb2 = Workbooks(StrWb)
If Wb2.Sheets.Count >= 2 Then
For Each Sh In Wb2.Sheets
If Sh.Name = "MENU" Then
TGT = StrWb
MsgBox "ブック名は、" & TGT
End If
Next
End If
End If
StrWb = Dir()
Loop
662 :
離島のサンデーPG :2009/10/22(木) 19:23:14
>>636 >>661 のつづき
Application.DisplayStatusBar = False
Application.ScreenUpdating = True
MsgBox "終了します!"
Exit Sub
Resume
Set Wb1 = Nothing
Set Wb2 = Nothing
End Sub
ISERR関数使え。
665 :
d :2009/10/22(木) 21:09:07
>>636 こんな感じかな。^^
Sub てすと1()
Dim Wb As Workbook
Dim Ws As Worksheet
Dim Ff As Boolean
For Each Wb In Workbooks
For Each Ws In Wb.Worksheets
If UCase(Ws.Name) = "MENU" Then
TGT = Wb.Name
Ff = True
Exit For
End If
Next
If Ff Then Exit For
Next
MsgBox TGT
End Sub
666 :
d :2009/10/22(木) 21:11:50
>>665 忘れ物。(^^ゞ
Dim TGT As String
なぁーおまいら、636の事例って640で解決してるんじゃねーの?
安価付ける勉強してこいksg!
669 :
離島のサンデーPG :2009/10/22(木) 21:27:17
>>665 >>636 の要求仕様満たしてないよ。
いくつかのブックのMENUというシートがあるブック名を変数TGTに入れるんだから
それじゃ拾えないんじゃないのかな?動かしても空白が返るだけだと...
671 :
離島のサンデーPG :2009/10/22(木) 21:44:16
あ〜、質問は「いくつかのブックを開いているとき」か、
>>665 スマソ
ちなみに
>>660 はブックを開いていなくてもブック名が取得できるから。
>>668 なぁーおまいら、>>636の事例って>>640で解決してるんじゃねーの?
なぁーおまいら、うんこしてこい
674 :
名無しさん@そうだ選挙にいこう :2009/10/22(木) 22:47:37
離島のサンデーPGはプログラム能力が低い上に日本語をあまり理解しないという・・
VBA厨ってバカが目立ちやすいんだよな
なんでだろう
>>673 申した
>>669 複数のブックに"MENU"というシートがあれば、Exit Forでループを抜け出してないんだから
最後に抽出したWB.NameがTGTに入るだろ?
677 :
名無しさん@そうだ選挙にいこう :2009/10/22(木) 23:06:57
もしかしてここじゃないのかもしれませんが Googleマップを最大にエリア拡大して、 プリントスクリーンで画面上に出ている地図情報を画像ファイルで保存してJpgにして その画像をExcelに貼り付けているのですが、 それをたとえば新宿区全域を貼り付けたい場合 ちょっとずつ移動しては貼り付けてって感じになって とても大変です これを一気にまとめて決められた範囲を貼り付けるってのは可能でしょうか? つまり画面に映っていない部分も まとめて地図情報を取りだすみたいな感じで フリーソフトとかでもかまいせん
googleさんにスクリプト・プログラムで連続アクセス(短時間で情報とりまくる)するとIP規制くらうから基本的にやらんほうがいい 個人的には体験版アリの地図ソフト+キーボードマクロを組み合わせて使うのがいいと思う じゃなきゃキーボードマクロをウェイト大きくしてgoogleマップに使うか
Sub Macro1() Dim KEY1 As String, KEY2 As String, OPRT As String For i = 1 To 3 If i = 1 Then KEY1 = "=ELT*" KEY2 = "=ELS*" OPRT = "xlOr" ElseIf i = 2 Then KEY1 = "=ECR*" KEY2 = "=ECS*" OPRT = "xlOr" ElseIf i = 2 Then KEY1 = "=ERW*" KEY2 = "<>*Z" OPRT = "xlAnd" End If Range("A2:G2").AutoFilter Field:=2, Criteria1:=KEY1, Operator:=OPRT, Criteria2:=KEY2 Next End Sub 「RangeクラスのAutoFilterメリッドが失敗しました」って出ちゃいます。 どこが良くないのん?
Operator:=OPRT, かなぁ。バージョンによっては対応していないようだ
>>679 AutoFilterメソッドのヘルプを見ると「Operator 引数には XlAutoFilterOperator クラスの定数を指定します」とあるので
宣言時は
OPRT As XlAutoFilterOperator ←Variantでもいいのかも
値のセットは
OPRT = xlOr ←ダブルクォーテーションで括る必要はない
で試してみて
682 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 00:22:30
なぜループさせているんだろ・・・
データを抽出とか行削除とか想像もつかんのか?
684 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 00:50:06
最後のがi=3の書きマツガイとしても、必ずi=3のケースになるじゃん
685 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 00:50:48
あ、見間違えてた。寝るわ
>>677 見えてない部分を取り出す方法はないと思う。
「このページのリンク」に出てるURLをよく見ると座標(緯度、経度)が含まれてるでしょ。
うまく計算してページを更新してやれば、自動的に連続したエリアを表示させることは可能。
それを順番に取り込んでいけばいい。自力でやるならVBAが必要。
フリーウェアの質問はWindows板へ。
多分まだ途中経過で、本当はループの一回ごとに何かしらやりたいんだろう
688 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 03:52:21
なんでみんなループ回すの? Sub てすと2() Const S As String = "MENU" Dim TGT() As String Dim Wb As Workbook Dim Ws As Worksheet Dim i As Long ReDim TGT(1 To Workbooks.Count) For Each Wb In Workbooks Set Ws = Nothing On Error Resume Next Set Ws = Wb.Worksheets(S) On Error GoTo 0 If Not Ws Is Nothing Then i = i + 1 TGT(i) = Wb.Name End If Next If i > 0 Then ReDim Preserve TGT(1 To i) MsgBox Join(TGT, ",") End If End Sub Workbooks2回使ってるのがちょい気になるけどな。
Workbooks.Open Filename:=MyPath & "\" & StrWb Set Wb2 = Workbooks(StrWb) ここみると相変わらず上達してねーなぁ。 なんで1行にしないんだか。
>>691 そこばっかじゃないな。
似たような記述を2回書く必要がどこにあるんだか。
>>690 確かにスマートで好ましいが
今開いてるブック
って条件なんじゃね
ずいぶん上からみてんな
俺のレベルは知らんが
>>689 は下の部類。
恥ずかしげもなく披露する点では下の下。
問題を解決できればいいだろ。コードの良し悪しなんかくだらね。こだわり厨ウゼエな。
698 :
複乳 :2009/10/23(金) 11:06:17
回答者のレベルがあがるって意味なら、 色々なコードがでることはいいだと思うよ
699 :
654 :2009/10/23(金) 11:21:22
>>663 お礼が遅くなり申し訳ありません。
見てみました。
しかし、完全に消去状態になるということで、
A列を変更した時に操作が必要なようです。
正直に言うと、思っていた挙動ではありませんでしたが、
こちらの作業が増えるだけなので問題ではありません。
ありがとうございました。
ありがたく使わせていただきます。
700 :
複乳 :2009/10/23(金) 11:35:05
>>699 完全に消去しないとグラフに反映されないのよ
ifでエラーを回避しようと何しようと数式が入ってるだけでダメ(グラフはつながる)
そういうエクセルの仕様と思ってあきらめてくだせい
703 :
654 :2009/10/23(金) 14:01:26
>>700 ただ、VBAでなら途切れさせる(消去する)ことが可能なようなので、
コピーして抽出しているIF()をVBAで組めば
思ったとおりのことができそうですね。
VBAを勉強してみます。
解説ありがとうございました。
助けてください 下記のようにA1に1月1日と入力したらB,C,D,E,F,Gセルは自動に翌月の○月1日にするにはどうしたらいいのでしょうか? A B C D E F J 1 1/1 2/1 3/1 4/1 5/1 6/1 7/1
>>704 B1=DATE(YEAR(A1),MONTH(A1)+1,1)
後はB1を右にオートフィル
706 :
679 :2009/10/23(金) 22:30:22
679です。
>>680 >>681 すごーい!ビンゴです!!
OPRT = xlOrで動きましたよん。
ElseIf i = 2 Then の3つ目のi=2は書き間違いです。
事務所で作ったファイルを思い出しながら書いたので間違っちゃいました(^^;
707 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 22:34:01
>>704 自動というのは関数?
オートフィルだったら、右クリックしながら引っ張って「連続データ(月単位)」
Fの次がJという・・・
709 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 22:49:49
2003で起動させたいので、よろしく。 【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 と2007 とがはいってる 【5 検索キーワード 】 Googleやヘルプでの検索キーワード 思いつかない 昨日まで、ショートカットで起動していたものは2003でしたが、セキュリティの更新が 昨日行われていたためか?、今日は2007の互換モードで開くようになってしまいました。 元のように2003で起動させられるようにしたいのです。が、エクセルプログラムを2003に しようとショートカットのプロパティを見て、office11のを選んでもoffice12の2007互換モードが 選択されてしまいます。
>>705 おかげさまで出来ました。
ありがとうございます、これで作業が楽になります。。
>>707 説明不足ですみません。関数でした
>>708 すみません
>>709 デスクトップかどこかのエクセルのファイルを右クリック
プロパティ→変更→参照
で古いほうのエクセルがある場所探してそれを「開く」
712 :
名無しさん@そうだ選挙にいこう :2009/10/23(金) 23:48:20
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 表の中から数字を検索(数式や文字を残す)して削除するってのを作ってみたんですが 実行したら=15*24みたいな式が消えずに残っちゃいまして… 当然なんでしょうけど、消えないでほしいのは=F1*G5みたいな式だけなんです これってどうにかならないんでしょうか?
>>712 数値だけ消すマクロ
Option Explicit
Dim sex
Sub ClearError()
For Each sex In ActiveSheet.UsedRange
If IsNumeric(sex) Then
sex.ClearContents
End If
Next
End Sub
714 :
712 :2009/10/24(土) 01:20:03
>>713 全部消えちゃいましたけど…
Sub Test2()
Dim r As Range
If MsgBox("◆数値を削除しますか?◆", vbYesNo, "削除の確認") _
= vbYes Then
On Error GoTo line
For Each r In Selection.SpecialCells(xlCellTypeConstants, 1)
On Error GoTo 0
r.ClearContents
Next r
Exit Sub
line:
MsgBox "指定範囲内に数値がありません。"
End If
End Sub
今出来てる(というか作ってもらった)のはこんな感じです
また、これだと検索した数値が結合したセル上にあった場合、エラーが発生する事が判明しました
715 :
709 :2009/10/24(土) 08:31:47
>>711 回答ありがとうございます。
照会説明が拙かったですが、お答えの方法で選んでもできないので聞きに来ました。
2003と2007とで何故か、優先して選択するものが常に2007に変更されたため、
生じているものと考えております。
この関係の操作を思い出せない、わからないので、困っております。
よろしくお願いします。
>>714 選択範囲の中で消したいなら
Selection.SpecialCells(xlCellTypeConstants, 1).ClearContents
を使っておくれ
Sub 2009年度の売上集計() と書いたらコパイルエラーになってしまいました。 調べたら、数字で始まるのはダメぽのようですが、マクロ名に集計したいタイトルを 書いておきたいとき、どんな対策をすればいいでしょうか?
>>719 前がダメなら後ろに書けばいいじゃん。(例:売上集計2009()
どんな対策も数字で始まらないようにするしかない 業務命令でやらされる場合、俺なら「a2009年度・・」というタイトルにするかな
>>719 頭に目立たない文字として、句点 "。" をつける。
でも、なぜか半角になんるんだが・・・
A009とかw
724 :
719 :2009/10/24(土) 15:55:05
>>722 "゜"だと不正な文字といわれるね。
コンパイラの仕様としか言いようが無いな。もしかしたら1bit目に制御文字でもあるのかもねぇ
リストボックスAを通常グレーアウトさせておいて、 チェックボックスAをONにしたら、リストボックスAも選べるようになるように するにはどうすればいいでしょうか。
727 :
離島のサンデーPG :2009/10/25(日) 04:06:35
>>726 Private Sub CheckBox1_Click()
With ListBox1
.Clear
.AddItem ("みかん")
.AddItem ("りんご")
.AddItem ("ばなな")
.MultiSelect = fmMultiSelectMulti
If CheckBox1.Value = True Then
.Enabled = True
.ForeColor = &H0
.BackColor = &HFFFFFF
Else
.Enabled = False
.ForeColor = &H999999
.BackColor = &HCCCCCC
End If
End With
End Sub
728 :
離島のサンデーPG :2009/10/25(日) 05:47:44
>>712 Sub test()
Dim MyVal As String
Dim MyReg As Object, MyPat As String, s As Range
Set MyReg = CreateObject("VBScript.RegExp")
MyPat = "[=\/\(\)\-\+\*]"
With MyReg
.Pattern = MyPat
.Global = True
For Each s In ActiveSheet.UsedRange
MyVal = .Replace(s.Formula, "")
If IsNumeric(MyVal) = True Then
Debug.Print s.Address
Range(s.Address).ClearContents
End If
Next
End With
Set MyReg = Nothing
End Sub
変数にmyをつける人は多いが先頭を大文字にする人は 初めてみた気がする・・・
730 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 12:53:01
行番号と列番号を16進で0からFに設定するにはどうすればいいの?
>If CheckBox1.Value = True Then >If IsNumeric(MyVal) = True Then 上はプロパティがTrueなら、と明示する意味で わからんでもないけど、下はなんかモヤモヤする。
別案つか、ふつう If IsNumeric(MyVal) Then
NOW()で現在の時刻を取得してそこに数時間後の曜日と時刻を表示させたいのですがうまくいきません。 例 数式:NOW()+TIME(M5,0,0) 書式:(aaa) h"時"mm"分";@ のように式を作った場合、M5の値が23までは問題ないのですが25を超えるとTIME関数の値が24で引かれた値になってしまいます。 単純に「〜時間を足す」処理はどのように行えば良いでしょうか?
736 :
離島のサンデーPG :2009/10/25(日) 14:02:46
>>734 ブール型ってみんな。初期Trueなの? なんか明示しないと気がすまないんで。
初期値は関係ない。
もし Isnumericの戻り値がTrueなら 比較式True=True はTrue
もし Isnumericの戻り値がFalseなら 比較式False=True はFalse
無駄でしょ?
>>735 NOW()+M5/24
ありがとうございました
739 :
離島のサンデーPG :2009/10/25(日) 14:39:17
>>737 なるほどね。=入力すると入力候補?でTRUE FALSEって出るもんだから
明示するのが正解だと思ってた。参考になりますた。
740 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 17:01:54
EXCEL2007、VistaUltimateです。 コントロールのボタンの色(文字の背景)を指定するには、どうすれば良いのでしょうか。 [コントロールの書式設定]の中にないのですが・・・
>>740 2003だと
右クリック→プロパティ
のbackcolor
書式設定の中のプロパティじゃないよ
毎月の変動が激しい数値をグラフ化したい場合、Excelでどのグラフを使えばいいでしょうか? また1ヶ月ごとのグラフにしたいのですが2000年からすべてグラフ化しようとすると1画面に収まりきりません その場合のいい対処法などはないでしょうか?
743 :
740 :2009/10/25(日) 17:51:10
>>741 レスありがとうございます。
右クリックでプロパティが出てこないんですけど。
Excelのシートで たとえば 巨神中洋国広 中巨広国洋神 巨中洋広神国 … こう言ったデータが各行にあった場合 国の部分を一括置換で赤く置換して太字にする事って可能でしょうか? できればマクロを使わずにがいいのですが 無理であればマクロでも可です。
>744 置換→オプション
>>729 ホントか?
過去ログ見たことも無いのかな。
俺は変数のうち、Fox〜Nextとかで使うInteger以外は全て大文字だけど。
747 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 19:47:10
>>744 条件付書式?
じゃなくて、本当に置換?
置換だったらオプション使えばOK
>>747 ごめんなさい
オプションで太字を指定して
置換前の文字列を「国」にしても
シート全体の全ての文字が太字になってしまいます
あくまでも「国」という文字だけを太字にしたいのですが
749 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 20:13:29
>>748 ちゃんと置換元「国」 書式セットなし
置換後「国」 書式:太字・赤字
にしてる?
>>749 はい、しています
ちなみにExcel2007
749のやり方で置換したら全体が太字で赤くなります
国だけではなく、神巨広洋中などシート内にある、すべての文字が赤くなります
751 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 20:22:03
じゃあごめん、分からないや。少なくとも2003ではきちんと該当文字のみ置換できるよ。
753 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 21:05:06
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 今まで使ったこと無いがぐぐればわかりそう 【4 VBAでの回答の可否】 可 あるデータの近似曲線を2次関数で作成したのですが、 この近似曲線の数式を表示させるとy=ax^2+bx+cとなります。 この近似曲線の頂点(最小値)を求めるのに効率的な方法はありますか? 実際にy=ax^2+bx+cのxを微小に変化させ、 yの値をExcelで計算すればそれなりに頂点に近い値は求まりそうなのですが、 もっと正確に効率よく値を求めたい場合どのようにすればよいでしょうか?
┌──────────────────────┐ │ | │ ピボット厨が回答できそうな質問もお待ちしてます!! | | | └―――──――─────────────――┘ ヽ(´ー`)ノ ( へ) く
>>754 集計と無関係な質問ばかりだからね。
きみは
>>753 に回答してやってはどうかね?得意のVBAで。
>>755 ソルバーでも悪くはないんだが、二次曲線の極値くらい中学生でも求められる。
それよりVBA厨がどんな回答するかを拝見したかったんで邪魔しないでほしかった。
私もVBA厨だけど、この場合はどう考えてもソルバー使うでしょ
759 :
753 :2009/10/25(日) 21:55:01
自己解決しました。 結局a、b、cの各係数を、excelで公式の通り数式を書いて導出し、 a、b、cの値を使って-(b^2-ac4)/a4を計算するようにしたセル群を、 必要な数だけコピペすることにしました。 お手数をおかけしましたすみません。
>>758 笑わせるのはやめてくれ。
VBAばかりやってないで中学校の教科書をもう一度読みなさい。
結局ピボット厨もVBA厨も回答できませんでしたとさ♪
>>761 おいおい。答えられないのはVBA厨だけだって。間違えんなよ。
このスレの回答者は最低でも義務教育は終えてるんだろうな?
心配になってきた。
>>763 回答はしていないよ。
簡単だと言っている。
君もしかしてわからない人?
>>764 ああ、結局分かってないってことですねw
>>765 君高校受からないぞ。
しっかり勉強しろよ。
荒らしたみたいですまんかった
>>767 お前も二次関数の極小値について調べて置くように。
もとはといえばお前が頭悪いのがきっかけなんだ。
そうだなぁ しかし中学の頃あんなにやったのに、こうも忘れるもんとはねぇ
VBAばかりやってると頭悪くなるぞ。 しっかりピボットテーブルの勉強をしなさい。
何この人気持ち悪い
>>771 まあそれくらいしか言いようがないだろうな。
恥ずかしいな。お前。
>>770 ピボットで頭が良くはならんよ。
逆に頭が良くない人でも使えるのがピボットだ。
頭の良い人はピボットと同じ処理くらいはVBAで出来るだろうが、ピボットが楽だからピボット使うだけだな。
ピボットをソートに置き換えてみよう。 ソートで頭が良くはならんよ。 逆に頭が良くない人でも使えるのがソートだ。 頭の良い人はソートと同じ処理くらいはVBAで出来るだろうが、ソートが楽だからソート使うだけだな。 まあ当たり前だな。 しかしこの当たり前ができないのがVBA厨。
エクセル2003のピボットなんですが データエリアに、2種類の値を横並びに入れて その合計を、ピボットの機能で行ごとに出したいのですが うまくいきません、どうすればいいですか? 今はピボットの表の右の列にsumを入れて出してます 列エリア 日時 行エリア 空白 データエリア データ1とデータ2(集計は合計だったり平均だったりその時によって違う) そのままにしてると縦にデータ1とデータ2が並ぶのでデータエリアを移動させて2列のデータになるようにする で、データエリアの3列目にデータ1とデータ2の合計値を出したいということです 説明が分かりにくかったら補足します よろしくお願いします
776 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 23:14:37
建築関係の仕事で、見積書・台帳をExcelで作ってます 1現場に1ファイル 1つのファイルに金額を変えた見積書を3つと台帳と現場指示書とファックス表紙が入っています そのファイルを顧客ごとにフォルダを分けて管理してますが、どうにも使い勝手がよくありません これをデータベース化したいのですがなんとかならんでしょうか? accessもありますが2つのソフトを同時起動させて中の数値がリンクするならよいのですが、できたらExcelのマクロでしたいです
777 :
名無しさん@そうだ選挙にいこう :2009/10/25(日) 23:29:10
どっちよ?
>>775 使用前使用後、つまりこういうデータからこうなるってのを書いた方がいいぜ。
779 :
776 :2009/10/25(日) 23:36:23
エクセルだけで管理したいです 当方はVBAの知識まったくありませんし、マクロもくんだことありません
>>775 ウィザードで複数のワークシート範囲にすりゃ出来るだろ?
>>775 >>775 データエリアに2種類の値を入れているということだが、元データの形式を変えてみてはどうか?
こんなデータを
商品 4月売上 5月売上
A 80 60
A 60 55
B 80 80
B 85 88
こんなデータに
商品 月 売上
A 4月 80
A 5月 60
A 4月 60
A 5月 55
B 4月 80
B 5月 80
B 4月 85
B 5月 88
データ形式の変更にはVBAを使うといい。
782 :
776 :2009/10/25(日) 23:41:39
>>778 データベースというものをよくわかっていませんので無理なものは無理と教えてもらえたら助かります
日付別・顧客別・現場別・施工内容別・見積もりだけなのか実際工事したのか
これらで検索が便利になるようにしてほしいです
>>776 データベース化することでどんなことを実現したい?
>>782 そういうことならデータをリスト形式で入力していけばいい。
後は検索、ソート、オートフィルタ,ピボットテーブルを使う。
ごめんなさい、安価見間違えた
タブがうまく表示されるか知らんが 項目A 項目B 項目C あ 1 1 い 1 1 あ 1 1 い 1 1 う 1 1 あ 1 1 う 1 1 ピボットテーブルウィザードで複数のワークシート範囲にすりゃ 合計 / 値 列ラベル 行ラベル 項目B 項目C 総計 あ 3 3 6 い 2 2 4 う 2 2 4 総計 7 7 14 こうなるぜ。
酢満、タブは無視されたか。
788 :
786 :2009/10/26(月) 00:00:56
>>775 >>786 がタブが消えて分りづらいので書きなおし。
商品 4月売上 5月売上
A 80 60
A 60 55
B 80 80
B 85 88
ピボットテーブルウィザードで複数のワークシート範囲にすりゃ
合計 / 値 列ラベル
行ラベル 4月売上 5月売上 総計
A 140 115 255
B 165 168 333
総計 305 283 588
こうなるぜ。
>>781 の言うVBAなんか全然必要茄子。
789 :
781 :2009/10/26(月) 00:12:08
>>788 あ。ほんとだ。勉強になった。
ありがとう。
790 :
名無しさん@そうだ選挙にいこう :2009/10/26(月) 02:36:51
ピボットはエクセル初級者、VBAは中級〜上級者だと思うがなw 集計するにもピボットは規則正しいデータがあってこそ活用できるが、集計するには ダメダメな並びのデータも集計できるのがVBA。 要はアレじゃね?
791 :
名無しさん@そうだ選挙にいこう :2009/10/26(月) 06:52:21
ケースバイケース。 何度も回すんだったらマクロもいいと思うけど、 その場限りの集計も多いんだから、ピボットは非常に有効 というわけで、集計はどっちでも好き。どっちも使う。
>>790 > ピボットはエクセル初級者、VBAは中級〜上級者だと思うがなw
本来そうあるべきと思うんだが、世間じゃ逆になってないか?
ピボット使えないVBA厨多すぎ。
入門書は関数よりも先にピボットを教えてやってほしい。
>>790 >ダメダメな並びのデータも集計できるのがVBA。
ダメダメなデータだという自覚があればいいのだがな。
ところで最近はVBA厨も正規化とかの言葉は覚えてきたようだな。
1〜2年前は野生のVBA厨がごろごろいて入れ食いだった。
ピボットは中級じゃね VBAはかなり使えるが、未だに使えない
795 :
複乳 :2009/10/26(月) 09:03:36
ピボットって妙に専門書でも敬遠されてるよね。何でだろう?
でかい会社は覚えるまでも無く専用ソフトがあるんだけど、
小さい会社では絶対に必要だと思うんだけどな
>>791 どっちも使うんだけどねぇ。なぜかピボット厨はそれを無視して話を進めたがる
使って欲しくないのかな?
796 :
名無しさん@そうだ選挙にいこう :2009/10/26(月) 09:45:12
>>794 今調べてみて、ワシもそう思った>ピボット
1回きりの処理ってあまり無いので、使うことが無かったのかな
#件数が数シートになるものが多いし
#DBに入れてからSQLで傾向見たりするからかも
世の中には普通ピボットでやるべき仕事を関数、それもsumproductや配列数式でやる自称仕事人もいる。 もうアボカド、グァバかと。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002(親のPCには一応2003) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 最大値の抽出 項目 A列に項目名、B列に数値 ここからB列の数値が最大のA列の項目を抽出したいのですが可能でしょうか? A B 1月 1,000,000 2月 900,000 3月 1,150,000 4月 400,000 5月 770,000 上記の場合「3月」という結果を抽出したいのですが……
可能です 大丈夫!
800 :
複乳 :2009/10/26(月) 13:32:26
>>798 関数
=IF(COUNTIF(B:B,MAX(B:B))>1,"最大値が二つ以上あります",INDEX(A1:B100,MATCH(MAX(B:B),B:B,0),1))
>800 ありがとうございます!できました。 本来のやつはもう一寸項目が多いので何とか応用できるよう調べてみます。 詰まったらまた来ますね。なるべくこないよう頑張ってみますが(`・ω・´) >799 いぢわる…… 確かにどうやれば出来るかとは書きませんでしたけど><。
>>801 すまん悪かった
以前、「可能でしょうか?」って質問に、方法まで書いたら余計なこと書くなと罵倒されたんでな
これからは、何を書いても罵倒しないからって前置きしてくれれば方法も書くよ
うざ
804 :
775 :2009/10/26(月) 21:06:40
>>781 ありがとうございます。
もともと1時間ごとに変化する量を自動観測機器で計測していて、その機械から出力されるCSVをエクセルに読み込んだものです。
時系列グラフを描いたり、その他の用途にも使うのでデータ形式を変えるの面倒かなと。
まあ、それほどマクロを使いこなせないというのもありますが…。
マクロを組むのに頭悩ませる時間があるなら、Sum入れちゃったほうが早いんですよね…。
>>788 ありがとうございます。
範囲がひとつしかなくても複数のワークシート範囲ってできるんですね。
しかも集計が変わってるし。勉強になりました。
805 :
名無しさん@そうだ選挙にいこう :2009/10/26(月) 21:59:23
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 最大値の抽出 結果 抽出 例 A B C D 12 20 30 50 30 10 20 50 2 3 5 8 2 30 7 37 Dの列に、A+B、B+C、A+C の中で合計が最大となる値が入るようにしたいのですが。
>>805 D1=MAX(A1+B1,B1+C1,A1+C1)
後は下にオートフィル
=SUM(A1:C1)-MIN(A1:C1)
うまいことやるねぇ
マクロ初心者です。 ファイルを2つ開いてて、マクロを書いた方をBook1、他をBook2としたとき、 Book1はThisworkbook.nameで指定できますが、Book2は何て書けばいいのでしょうか?
ありがとうございました。
excel2007でグラフ作成をしてexcel97-2003形式で保存してます。 これを相手側がexcel2003で開いて見ている状況なんですがグラフのラベル部分に ズレが出てしまいます。単純なグラフは問題ないのですがグラフをいくつか重ねる など複雑なグラフの場合にズレがでてしまうようです。 自分なりに考えた打開策は以下の2つです。 1、グラフを図として張り付ける。(画像化!?) 2、涙を飲んでexcel2003を購入する。(officeの共存化) できればどちらも避けたいので他に良い案はないでしょうか?ご教授のほどよろしくお願い致します。
>809 つマクロの記録
>>809 ブック名がbook2なら
Workbooks("Book2").Activate
ブック名が分からないなら
vba 開いてるブック 名前 辺りで検索
>>811 グラフのずれは仕様
グラフを作らずに渡して相手に作ってもらうか、画像としてコピーするか
お金がもったいないならOOoを使うって手もあるかも?
ttp://ja.openoffice.org/ エクセルによく似たソフト。グラフがずれない保障は無いけど
個人的には頻度が高くないなら画像としてコピーするのが早いと思う
814 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 00:05:29
>>811 名前が決まっていないなら、名前を取得するとか・・
thisじゃないなら、thatwork・・・なんて馬鹿な事を考えてしまった・・寝よう
815 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 00:05:52
Otherworkbook.nameでいいんじゃね? マクロ使ったことないけど
817 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 00:25:24
シート1のA1・A2・A3……にある数値を、 シート2のA1・A3・A5……という風に1行おきに貼り付けたいのですが、何か言い方法はないでしょうか。 数式を普通に貼り付けると、貼り付けた側の行を持ってきてしまうので上手くいきません。 excelは2003です。 よろしくお願いします。
何か簡単なやり方あったんだけどな。忘れた。
>>817 VBAは使えますか
819 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 00:35:46
>>819 別に謝らなくても。
シートはsheet1とsheet2、後は完全に例題どおりならsheet2のA1に
=IF(MOD(COLUMN(),2)=1,INDIRECT("Sheet1!r1c"&(COLUMN()+1)/2,0),"")
と入れて右にオートフィル
ただこれ応用は難しいと思うから、使えなかったらシート名とセル番地教えてくれたら作り直すよ
821 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 00:44:48
>>817 =IF(MOD(ROW(),2)=1,INDIRECT("Sheet1!A"&INT(ROW()/2+1)),"")
>>817 =IF(MOD(ROW(),2)=1,INDIRECT("Sheet1!A"&ROW()/2+0.5),"")
遅かった orz
824 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 00:54:59
>>820 ありがとうございます!
コピー元はシート名が「入力用」、B列の2行目から文字が1行ずつ入っています。
貼付け先はシート名が「印刷用」、BCDEの結合セルの4行目から1行おきに文字を貼り付けたいです。
ちなみなんですが、間の5行目・7行目……にはすでに文字が入力されているのですが、それを消さずに貼り付ける事はできますか?
>>824 =IF(MOD(ROW(),2),INDEX(Sheet1!A:A,ROW()/2+0.5,1),"")
1行置きに選択とか貼り付けをしたいなら作業列に=MOD(ROW(),2)と入れて
オートフィルタで1の行だけを表示させてから貼り付け
oh・・横じゃなくて縦だったか。ゴメンナサイ。寝不足は良くないね。寝よう
>>824 F4=IF(MOD(ROW(),2)=0,INDIRECT("入力用!B"&INT((ROW()-3)/2)+2),"")
下にオートフィル、とりあえずF10までとする
F4からF10をコピー
B4に貼り付けるときに「形式を選択して貼り付け」→貼り付け「すべて」演算「加算」
にして貼り付け
うまくいくかな?いかなかったらまた明日
あ、全部印刷用シートで作業してね ちなみにF4に張るときは4行目ならG4でもT4でも好きなところでオッケー
>>824 数式はこれ
=IF(MOD(ROW(),2),"",INDEX(入力用!B:B,ROW()/2+0.5,1))
偶数行に貼りたいときは
>>825 の方法で、オートフィルタで0の行を選んで貼り付ければいい
829 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 01:11:47
丁寧にありがとうございます。本当に助かりました。 明日試してみます。
エクセル2003 ピボットテーブル勉強中です。 ピボットテーブルで、データ欄の集計を「合計」とか「平均」とか変えられますが、 集計が「合計」のときに、総計欄に平均値を出したり、 集計が「平均」のときに、総計欄に合計値を出したりするやり方がわかりません。 普通にやると、「合計」のときは総計欄も合計になって、「平均」のときは総計欄も平均値になってしまいます。 よろしくお願いします。
>>817 作業列に連番をふってからソートすればよい。
例
2 1
5 2
8 3
1
2
3
と入力してからB列でソート
結果
2 1
1
5 2
2
8 3
3
となる。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 私女だけど、抽出マクロについて教えてください>< 【グループA】 あ 1 い 0 う 2 【グループB】 か 0 き 1 く 2 ↓0以外のひらがなを抽出して、別シートに 【グループA】 あ 1 う 2 【グループB】 き 1 く 2 と表示にしたいんです>< そういうマクロ教えてください><関数でもでますか?><
833 :
複乳 :2009/10/27(火) 09:48:57
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ピボットテーブル 最大値 月 金額 1月 7 2月 12 3月 5 と2列4行の表があります 金額の最大値と月を、ピボットテーブルで 求めたいのですがやり方がわかりません どなたか教えてください 結果は↓のようにしたいです 月 金額 2月 12
834 :
複乳 :2009/10/27(火) 10:08:01
>>832 オッサンが女とか言うのやめれw
マクロの記録でオートフィルタした後、可視セルをコピー
↓は可視セルのみコピーするマクロ
Cells.CurrentRegion.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
2列目が0の行を削除↓シートごとコピーしてから使うといいと思う
Sub Macro1()
gyo = Range("A65535").End(xlUp).Row
For i = 1 To gyo
Cells(i, 2).Select
If Cells(i, 2).Value = 0 And Cells(i, 2).Value <> "" Then
Rows(i & ":" & i).Delete Shift:=xlUp
i = i - 1
End If
Next
End Sub
836 :
複乳 :2009/10/27(火) 10:27:35
>>834 ありがとう。。。試してみるね!
もう濡れ濡れです><
838 :
複乳 :2009/10/27(火) 10:49:59
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 windows7 excel スナップ ウィンドウ など Windows7ですが他のアプリはウィンドウ上部をドラッグして ウィンドウサイズの調整や移動などができる7のスナップ機能が使えるのですが、 Excelのみ最大化した後はドラッグでウィンドウを離せません。 わたしのだけ?
【1 OSの種類 .】 WindowsXP sp3 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel 2007 改行 削除 置換 出来ない セル内の改行コード削除はCtrl+J入力後に置換ですが、2007に 変えてずいぶん久しぶりに使用したところ出来ません。 試しに新規シートであああ、aaaとセル入力、各ALT+Enter改行しましたが、 Ctrl+J→全て置換でも「置換対象のデータが見つかりません」 となります。
>841 有り難うございます。さっきピンときてセキュリティソフトを疑ったところ、 ESETの「ドキュメント保護」機能が悪さをしていたようです。 以前もKasperskyがAccessでのテーブル操作に干渉したことがあったので 気が付きました。お手数かけました。
843 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 13:28:40
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】抽出 エクセル 関数 質問です。 ・やりたい事は、ある座標系プログラムのコードに対応する数値のみを抽出したいです。 ・コード数 22個(全てアルファベット) 【例】 ↓プログラム A B C ・・・合計22個 「A200 B300 C400」 200 300 400 【プログラム例】 ・A100 C200 T300 F400 X1200 W40 V33 H18 D101・・・ このようなプログラムが1行づつに区切られて、200行ほど続きます。 各コードはランダムに配列されることがあります。 1行に同じコードが複数回使われることがあります。 ワードパット等からコピーしてエクセルに貼り付ける形で使用します。 一応、MID、LEN、VALUE等を使用してある程度規則的なコードの 数値は抽出できるようになりましたが、不規則なコード 例)A10 B20 C1000 B10 A30(始めに出たコードA、Bが飛んでまた出る) の抽出に手間取っています。 細かく分割して抽出していけば可能かもしれませんが、もう列のシート も限界になってしまいました・・・。容量も重たいです。 関数でもっと効率の良い方法、又はそれがなければVBAでもかまいません。(勉強します) 教えてください。
>>843 いきなりプログラムとかコードとか言われても、言葉の定義がわからん
つまりセル名が並べて書いてあって、そのセルの内容を取り出したいってこと?
845 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 13:59:15
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン.】 Excel2000 【3 VBAが使えるか.】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel 月初 例えばA1に10と入れたらB1に2009/10/1とするにはどうすればいいのでしょうか?
846 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 14:17:45
>>844 ごめんなさい。分かりにくいですよね。
「プログラム」とは、抽出元のアルファベットと数値の羅列文。
「コード」とは、そのアルファベットのみのことを指してます。
質問内の「A200」や「B300」はセル番地のことではなく、X200,Y300,Z400のような座標値を表してます。
「X200 Y300 Z400・・・」
↑この文から、Xの後に続く数値「200」、Yなら「300」、Z「400」と数値のみ抽出したいです。
847 :
複乳 :2009/10/27(火) 14:19:09
>>843 頭文字一文字のぞきたいだけなら
=RIGHT(A1,LEN(A1)-1)*1
で。ちなみに*1をしないと数値にならずに文字列扱いされる可能性があるため
>>845 =DATE(2009,A1,1)
か
="2009/"&A1&"/1"
>845 B1=IF(A1=10,"2009/10/1","")
849 :
複乳 :2009/10/27(火) 14:20:13
>>843 念のため補足だけどA1に「X200」とか入ってるって意味ね
数式自体はB1にでもA2にでもどこでも好きなとこへ入れてください
850 :
>>845 :2009/10/27(火) 14:28:17
>>848 説明足らずでスンません。
A1=10なら2009/10/1
A1=2なら2009/2/1
A1=12なら2009/12/1
てな具合でIFでやろうとするとかなりのネスト必要ですよね...
851 :
複乳 :2009/10/27(火) 14:32:36
>>849 回答ありがとうございます。わざわざVALUE使わなくていいんですね。
一つの文に複数のアルファベットと数値が入ってる場合はどうでしょう?
853 :
複乳 :2009/10/27(火) 14:52:21
>>852 例えば「X200Y150」みたいな感じにつながってるのを200と150だと結構めんどくさい
「X200,Y150」みたいにわかれてるならそれほどでもない
「1A2B5C0」を「1250」でも同じ
どんな感じ?
できれば実例を挙げてくれると後々楽かも
>>852 説明がわかりにくすぎる
こんなふうに具体例を書け
(例)
A1に「X100 Y200」と入っている
取り出した「100」をB1に入れる
取り出した「200」をC1に入れる
856 :
複乳 :2009/10/27(火) 14:55:24
ああごめん
>>843 が実例でいいのか
VBAで組んでみましょうか
857 :
複乳 :2009/10/27(火) 15:39:14
>>843 オッケーできたぞ
ワードパットからA1に貼り付けたらこのマクロを使ってみてくれ
スペースを元に区切り位置を設定
後はコードを元にアルファベットを空白に置換している。暇なら内容を読んでみるといい
Sub fukunyu()
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1))
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub
858 :
複乳 :2009/10/27(火) 15:39:57
>>843 オッケーできたぞ
ワードパットからA1に貼り付けたらこのマクロを使ってみてくれ
スペースを元に区切り位置を設定
後はコードを元にアルファベットを空白に置換している。暇なら内容を読んでみるといい
Sub fukunyu()
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1))
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub
859 :
複乳 :2009/10/27(火) 15:40:57
連投スマンカッタ
860 :
複乳 :2009/10/27(火) 17:11:49
>>833 誰かお願いします
できなくて泣きそうです
なんでピボットテーブルやねん オートフィルタだろjk
862 :
複乳 :2009/10/27(火) 17:48:55
ピボットの勉強中なのです 関数とVBAばっかり使いすぎてさっぱり使えないや
863 :
843 :2009/10/27(火) 17:55:23
>>854 ー855
度々説明不足ですみません!
言いたいことは
>>855 さんので合っています。
補足で
◆A2に「X200Y300」(間に空白、コンマ無し)
※以下A列に22種類のアルファベット+数値を含んだ文がランダムに混ざって200行程並びます。1行には5種類くらいです。
◆B1「X」、C1「Y」、D1「Z」・・・(22種類のアルファベット)◆B2より1行目の各アルファベットに対応した値のみを返したいです。
>>857 ありがとございます!
今出先なので、帰ったら実行します!
中身は読んでもちんぷんかんぷんですが、これを足掛かりに勉強しますね!
>>863 1行の中でアルファベットが重複していた場合はどうするの?
セルA2に「A1B2A3」と入っていたとして、「A」に対応する数字は「13」でいいの?
865 :
複乳 :2009/10/27(火) 18:16:21
>>863 間に空白がないと
>>857 は使えないなぁ
まぁアルファベットを空白に置換すればすむけどさ
2.3行ほど実際のものをみせてくれると嬉しい
アルファベットは必ず一文字?
>>860 値フィールドの集計を「最大値」にすれば「12」は表示できるが
その値が属する月だけを表示させるのは無理だな
868 :
843 :2009/10/27(火) 18:35:48
>>864 その場合は、Aの項目を2つにして「A/1」に「1」、「A/2」に「3」を返したいです。
>>865 例)
A2>G90X10Y20Z30S120F40
A3>G91X20Z40M8S100M9M108
A4>G1X30Z10G97L2P1020
といった感じです。
>>868 おまえは説明がヘタすぎ
「項目を2つにする」の意味がわからん
1行目のどこかに「A/1」ってのが最初から入ってんの?
それとも重複が見つかったら自動的に追加してくの?
こういうこと?
A. B C D
--------------------------------
1 | | A | A/1 | A/2
--------------------------------
2 | A1 | 1 | |
--------------------------------
3 | A2A3 | | 2 | 3
条件後出ししすぎw
どうせおまえらヒマなんだから あーだこーだいわずにだまって聞いてやれw
>>843 ほらできたぞ禿
1列目はテキトーに削除してくれ
あと1行目にタイトルがあると思うんだが、それはコピーしておいて最後に貼り付けするなりして
対策してくれ
Option Explicit
Dim i
Sub fukunyu()
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:=" " & Chr(i), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
(20, 1), Array(21, 1), Array(22, 1))
Cells.Select
For i = 65 To 90
Selection.Replace What:=Chr(i), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next
End Sub
>1列目はテキトーに削除してくれ の1列目はA列のことな。
>>867 ありがとうございます!
既に最大値表示されてたとは気づかなかったぜ
Excelって当たり前のソフトすぎて、 真面目に勉強したことなくいつも手なりでやるか、必要になった時にネットでTips的な操作を調べてやってるんだけど、 何か本を一冊買って、一度がっつりと勉強したほうがいいでしょうか?
たとえばスーパーマリオのワールド・面のように1−1から8−4まであったとして A1にワールドA2に面を手入力するとします で、C1からC32までのセルにそれぞれ各ワールド・面の違う数値が入っているので A1とA2の入力結果を元にA3にC1からC32の数値を自動で選んで表示させる こういうやり方はできるでしょうか? たとえが悪くて伝わるかどうかわからないんだけど…
できる
すみません、是非教えてください もしくは解説しているサイトがあれば紹介してください
>>879 A3=INDIRECT("r"&(A1-1)*4+B1&"c3",0)
>>878 やり方教えてやれよw
>>880 ありがとうございます
いまから置き換えてやってみます
882 :
843 :2009/10/27(火) 21:15:30
>>869 説明ベタでお手数掛けます・・・
1文に複数重複時は、1行目の項目セルに足りない項目を手入力で追加して(A/1、A/2の様に)
対応出来ればと考えてました。
>>872 今実行してみました!
A2>G99G97G0U2Z188M8S1400T499M4
これでテストしてみて結果
B2>99
C2>97
D2>0
E2>2
F2>188
G2>8
H2>1400
I2>499
J2>4
という出力結果になりました。
いろいろお騒がせしてすみません。
複乳さん並びに
相談にのって下さった方々ありがとうございました。
面白いのでいろいろやってみます。
おめでとう、うまくいったようで良かった。実はかなり心配だった
【1 OSの種類 .】 XPSP3 【2 Excelのバージョン 】 Excel2007 8-21というようにページ表現をして、そのまま表示させたいのですが 8月21日、と自動で変換されてしまいます セルの書式設定で標準、を選び入力し直しても結局8月21日になってしまいPCを窓から投げたくなります どうやればそのまま表示できるんでしょうか?
セルの書式設定で文字列
>>885 ありがとうございます
これで下を歩く人の頭にPCが当たることは無くなると思います
887 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 23:42:24
>>877 =INDEX(C1:C32,(A1-1)*4+A2)
888 :
名無しさん@そうだ選挙にいこう :2009/10/27(火) 23:50:18
質問 初心者です。 Windows7にoffice2000を不正インストールすると IDだか認証だかですぐパレちゃうんですか?
>>888 問題ないです!今すぐインストールしてください!!!
と言って信じるんですか?知識の無い方は不正しない方法を考えましょう
PC一台に一つのインストール、OOoを使うなど回避方法はいくらでもあるはずです
ヤフオクも安いですが海賊版とのうわさもあります
890 :
名無しさん@そうだ選挙にいこう :2009/10/28(水) 00:09:40
8月21日と一旦認識してしまうと、文字列にしても直らない・・・って辛い仕様
>>890 まだやってるのか?w
んじゃ、shift+7で「'」を入力して8−21って入力して味噌
'8−21 ←こんな感じ
>>813 回答ありがとうございました。グラフのズレは仕様なんですね。グラフの画像化で頑張ってみます。
ただ使用頻度が高いのでエクセル2003の購入も考えてます。
OEM版は違うPCでインスコするとマイクロソフトからペナルティー貸せられるからNG。
でもオクやアキバなどではなぜあんなに売られているのでしょうか?
何か抜け道的な技があるのでしたら教えていただきたいです。
>>892 売ったり買ったりするだけなら違法じゃないから。
それをインストールして使うとライセンス違反。だから店には責任はない。取り締まることもできない。
>>889 >PC一台に一つのインストール
プリインストール版とかOEM版はそうだが、通常の製品版は一つのソフトで
メインPCとサブPCにインストール出来ますよ。
895 :
894 :2009/10/28(水) 05:05:08
結果、通常の製品版は2台までokってこと。
2台とはいっても、デスクトップ1、ノート1 じゃなかった?
897 :
名無しさん@そうだ選挙にいこう :2009/10/28(水) 09:35:15
デスクトップ1台ノート1台の構成に限るとかそんな縛りあるの?ノート2台でメイン、サブとかはだめなの?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000or2003 【3 VBAが使えるか .】 いいえ 文字の入力の事なんですが ABCDEFGといった文字の前後に半角スペースを入れたいのですが始めの方は付きますが後ろが幾ら入力しても駄目です。 表示上反映されない?? _ABCDEFG_こんな感じにしたいです。_は半角スペースとお考え下さい。
900 :
複乳 :2009/10/28(水) 10:46:40
見えないだけでしよう
902 :
899 :2009/10/28(水) 10:56:22
すいません。情報不足でした。 画面上や印刷したときに反映して欲しいです。 演算や集計に使用するのでは無く名札的なものを作りたいのですが決まった幅で均一にしたいと またセルを複数個結合していて横は、”均等割り付けインデント”設定です。 ちょっとややこしいですが(変?)これで作れとの指示なもんでなんとかお知恵を拝借願います。
903 :
899 :2009/10/28(水) 11:05:15
すいません。解決しました
904 :
複乳 :2009/10/28(水) 11:07:51
”均等割り付けインデント”にしようと思い均等割付にした後 インデントをつけると勝手に左詰めになった と思ったら解決してた
905 :
名無しさん@そうだ選挙にいこう :2009/10/28(水) 11:37:23
>>875 VBAで作り始めた頃、マクロの記録とかで調べながらつくり終わって
ふと本屋で手に取った本に、自分が調べたことが、ほぼ書いてあった
ことがあったw
>>905 結果から見ると無駄に思えるかもしれないが確実に肥やしになっ
>>897 ノート2はNGって言われたことある。実際入れてないからわからないけど、ノート2とかデスク2とかにインスコしたら認証はじかれるのかなあ?
【1 OSの種類 .】 WindowsXP SP3
【2 Excelのバージョン 】 Excel2003
データサイズの大きくなったブック(約40MBワークシート1枚)のシートを、新規ブックを作りコピーして保存したら
データサイズが半分になりました。これはどういう理由でしょうか。
そのワークシートには、数式と文字列しか入っていません。エクセルの設定はデフォルトです。
以下の質問サイトの、質問してる人と同じ状況のように思います。
http://questionbox.jp.msn.com/qa5266889.html
909 :
908 :2009/10/28(水) 13:13:59
>>908 データを削除すると、そこは隙間が空いたままになる。
次にデータを入れる時、その隙間を使わずに、また後ろに付け足していく。
だから編集しているうちにどんどん大きくなる。
それを新規ブックにコピーすると、きっちり詰まった状態で作り直されるから小さくなる。
実際は、データ量を節約するための工夫が色々あるんだけど、(例えば列全体に書式を設定した方が、
セル1個ずつ指定するより小さくなるとか) だいたいはそういうことだと思っておけばいい。
>>910 なるほど、勉強になりました。
どうもありがとうございました!
912 :
複乳 :2009/10/28(水) 17:12:45
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセル カメラ機能 倍率 変わる 図のリンク貼り付け(カメラ機能)を使うとページの倍率が変更されてないのに印刷時のサイズが大きくなります。 具体的には、ある表を印刷する際、113%にするとA3ちょうどに収まる設定なのですがリンク貼り付けをすると なぜかはみ出ます。105%に落とすとほぼ同じ大きさになります。 今両方で確認したのでバージョン違い・プリンタの設定が違うなどということはありません。 印刷プレビューでもはみ出ますが、印刷範囲の設定をした時の点線は同じ位置にあります。 図や図形を貼り付けてもサイズは変わりませんでした。本リンク貼り付けをしたときだけ大きくなります。 原因が分かる方、教えてください。よろしくお願いします。
ビルゲイツは学生時代に常に数冊の本を持ち歩いていて、少なくとも年間300冊以上は読んでいた それが原因で学校の連中に「prn(印刷物を意味するprintからきた侮蔑する言葉)」 とあだ名を付けられたんだが ビルゲイツはいい年になった今でも当時のあだ名をひどく嫌っているらしく windowsで新しいフォルダを作るときに「prn」という名前を付けられないようにした
コピペ乙 concon問題とかナツカシス
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 簡単なものなら 【4 VBAでの回答の可否】 可 【5 検索キーワード 】ファイルの種類 TMP ファイル ファイルを作り保存すると、TMP ファイルという物が同じフォルダーの中に出来てきます。 最初はあまり気にならなかったのですが、ファイルが増えるにつれ邪魔になります。 通常のファイルのプロパティを見ると、ファイルの種類「Microsoft Excel ワークシート」と成っていますが、 ファイルの種類「TMP ファイル」と書いてあります。 ファイル名(Excelファイル)と、もう一つ 「ファイル名.xls~RF181538245」 こんな感じで意味不明な数字が足されて出来ます。 どこをいじったら、こうなったのか思い当たりません。 元々、隠しファイルであるものなのか、判りにくいかも知れませんが、宜しくお願いします。
916 :
名無しさん@そうだ選挙にいこう :2009/10/28(水) 20:16:12
教えてください。 以下のようなデータで、A列B列が一致している(りんご りんご のように)行数だけを数えたいのですが、どのようにすればよろしいでしょうか。 A B 1 りんご バナナ 2 りんご りんご 3 りんご みかん 4 みかん りんご 5 りんご りんご 6 りんご バナナ 7 みかん みかん 8 バナナ みかん 9 りんご りんご 10 バナナ バナナ
>>915 一時保存ファイルだな。通常は作業が終わったら消える
作業の途中で強制終了したりすると残るもので、ファイルが正常なら消しても問題ないと思う
>>916 C1に=a1=b1
下までオートフィル
D1=COUNTIF(C:C,TRUE)
>windowsで新しいフォルダを作るときに「prn」という名前を付けられないようにした スゲー、初めて知ったw
919 :
名無しさん@そうだ選挙にいこう :2009/10/28(水) 22:09:22
>>916 =SUMPRODUCT((A1:A10=B1:B10)*1)-COUNTBLANK(A1:A10)
ブランクが入らないなら、-COUNTBLANK(A1:A10)はいらないけど・・・
>>917 ありがとん
では、これがフォルダに残るということは、何かしらエラーがあるということなのでしょうか・・・
再インストールすれば治るのか、正直邪魔なので。
確かに、正規ファイル開いても別段問題なさげです。
明日の昼休みにでも再インストールやってみます。
ありがとうございました。
B列にファイル名、C列にシート名を書いたリストをつくり、B列の任意のセルを選んでボタンを押したとき、 そのファイルを開くことは出来たんですが、シートの選択はどう書けばいいの? Sub B列のファイルを開く() F_NAME = ActiveCell.Value Workbooks.Open Filename:="C:\Yui\" & F_NAME Sheets(S_NAME).Select End Sub
>>921 S_NAMEは変数?シート名?
シート名なら
Sheets("S_NAME").Select
こう
変数に格納してるのなら、変数に上手く入ってない可能性が
ウォッチ式を使ってみては
>>921 ああ、ごめん問題を読んでなかった
同じ行でC列のを取得したいならoffset
F_NAME = ActiveCell.Value
S_NAME = ActiveCell.Offset(0, 1).Value
>>923 いや、変数に上手く入ってない可能性じゃなくて、その変数に入れるやり方を知りたい訳でして・・・
B列にファイル名、C列にシート名を書いたリストがあって、B列にアクティブなセルがあったとき、
その右隣にあるC列のセルに書いたシート名をS_NAMEという変数に入れたいんです。
>>924 あ、できました。
ありがとうございます。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 次のようなCSVを開いて加工したあとに、ダウンロードした月をブック名に入れたいのですが、 コンパイラエラーになってしまいます。どこが悪いのでしょうか? DT303S_ENG200910281117.CSV CSVの中に年月日(20091028)と時分(1117)が書かれている. CSVの種類によって、最初の文字数が変わるので "_" の位置から8番目が月になる. この例では、月度=10 にしたい. 月度 = Mid(WB.Name, Find("_", WB.Name, 1) + 8, 2)
>>927 月度 = Mid("DT303S_ENG200910281117.CSV", WorksheetFunction.Find("_", "DT303S_ENG200910281117.CSV", 1) + 8, 2)
ワークシート関数のFINDを使いたい場合はWorksheetFunction.Findとする
vbaのfindはちと使い方が違う。
VBAで文字列内の検索はInstr関数
>>928 VBAでWorksheetFunction.Findなんか使っちゃいかん。
ちゃんとInStrが用意されてる。
ちょっと遅かったか。
なんや質問者がFind書いてたからか。
933 :
927 :2009/10/29(木) 00:05:20
レスどうもです。 月度 = Mid("DT303S_ENG200910281117.CSV", WorksheetFunction.Find("_", "DT303S_ENG200910281117.CSV", 1) + 8, 2) ↑はおkでしたが、↓は「実行時エラー13 型が一致しません」でダメぽですた。 月度 = Mid("DT303S_ENG200910281117.CSV", InStr("_", "DT303S_ENG200910281117.CSV", 1) + 8, 2)
>>933 引数の順序や内容は関数ごとに全然違うと思って毎回調べた方がいい。ぐぐれ
まぁ今回は↓
月度 = Mid("DT303S_ENG200910281117.CSV", InStr(1, "DT303S_ENG200910281117.CSV", "_", 1) + 8, 2)
935 :
複乳 :2009/10/29(木) 10:04:45
同じ症状だ
【1 OSの種類 .】 WindowsXP Pro SP3 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 できれば「否」 【5 検索キーワード 】 Empty ワークシート関数 代入 別のセルにある値を参照して代入する際、対象が未入力セルだと数値の0に変換され代入されてしまいますよね。 この「未入力」の状態を表す関数なり変数がわかりません。(ないのかもしれません) セルに対して「未入力」を代入できる数式の書き方があればぜひ教えて下さい。 VBAなら判別も代入も出来る事はわかっているのですが、 作成時VBA縛りがある場合やそのためだけにマクロ警告出したくない場合もありますし、 ワークシート上だけで実現出来るならそれが一番いいなと思い質問しました。 一応=Nullとか、=Emptyでいけないかと考えましたが通りませんでしたw 以上よろしくお願いいたします。
938 :
複乳 :2009/10/30(金) 13:51:06
>937 ISNUMBER等
IF(A1="", …… じゃダメなのか?
ゼロ値のチェック外したんじゃダメ?
942 :
937 :2009/10/30(金) 21:06:04
数々の返答ありがとうございます。
>>938 単純に"Blank"を代入する術はない、という事ですね。
ありがとうございました。
>>939 IS系のワークシート関数で判定すべし、という方法でしょうか。
この場合はIsBlank関数ですかね。ありがとうございました。
>>940 その式でもIsBlank関数同様に用件を満たせますね。
用法としてはおそらくこうなりますよね?
=IF(A1="","",A1)
相手A1がBlankではなくとも、どっちにしろ値が""であるならこれでいいはずですね。
ありがとうございました。
>>941 ごめんなさい。
どういう意味でしょうか?
いろいろな考えが見えて勉強になります。
自分の質問を改めて整理し直してみると判定方法のほうではなく、
値としてBlankを渡せないか?という事を質問したつもりだったのです。
申し訳ありません。
943 :
937 :2009/10/30(金) 21:09:49
ごめんなさい、私はそもそも重大な勘違いをしていた事に気が付きました。 そのセルに数式を書く前提ではもうすでに「Blankにはなり得ない」ですね・・・orz ワークシート関数で実現すること自体が不可能ですよね、これ。 ほんとズコーって感じです。スレ汚し申し訳ありませんでした。 これを実行したかった理由は、こうしてBlankを参照したセルをさらに参照した時、 ここでもIsBlank関数がTrueを返すような状態、つまり限りなく大元のセルに近いコピーセルを作れないかという考えからでした。 普通はBlankを判定して""に置き換えますよね。 すると元々ある空文字列のセルと区別不能になってしまったり、 Sum関数等でエラーになってしまったりするので影響する部分には手直しが必要になりますよね。 ですが結局は""への代替がもっとも簡単かつ、問題があっても対処が楽な方法のようですね。 ありがとうございました。 PS.もし仮に値として「セルオブジェクト」を代入出来るとしたら実現できる、かもしれないと今妄想しましたw
最初から>939でFAだと思うんだが・・・
945 :
名無しさん@そうだ選挙にいこう :2009/10/30(金) 21:48:57
tes
tes
スミマセン どなたか数値の色を変えただけでIFの論理式に組み込む事は出来ますか? 例としてセルA3にはA1とA2の合計値が入っていて、セルA1の数値の色が赤に変わったら、セルA4にセルA1が表示されて、セルA3は空白になるとか・・・ 別にIFじゃなくともいいんですけど、VBAでしか無理ですか?関数でなんとか出来ないでしょうか・・・
950 :
名無しさん@そうだ選挙にいこう :2009/10/30(金) 22:55:22
まあ、落ち着け
>>949 メニューの書式→条件付書式
背景色と文字色を設定できる
952 :
名無しさん@そうだ選挙にいこう :2009/10/30(金) 23:07:25
で?
>>949 文字の色を調べるワークシート関数はない
>>951 スミマセン
もう少しkwsk・・・
色を変えても表示されません
寝不足でワケワカランことをかいてしまった スマンかった
957 :
名無しさん@そうだ選挙にいこう :2009/10/30(金) 23:14:24
>>949 自分の書いた質問をもう一度見直してみれ。もっと具体的に解るように書けや粕。
そうだよ
>>959 やはりそうでしたか・・・教えて頂きありがとうございました。
勤務時間表を作っていたのですが、入力する表の列に定時の時間と時間外の時間も入力しなくてはならなくて、その合計値を定時と時間外に分けるにはどうすればいいか困っていたんです。
961 :
937 :2009/10/30(金) 23:26:54
>>945 > 値としてBlankを渡せないか?という事を質問したつもりだったのです。
>>944 いいえ、振り返って考えれば完璧なFAは
>>938 でした。
はじめの質問の文章ではまるっきり伝わっていないですね。
重ね重ねすいませんでした。937としてはこれにて失礼します。
>>958 以前調べましたが、純粋にワークシート関数では取得出する術がないようです。
どうしても何が何でもVBA抜きでという事ならば、Excel4MacroのGet.Cell関数で取得出来た気がします。
VBAからじゃないと4Macroの使い勝手ってすこぶる悪いんで全くお勧め出来ませんけども。
>>960 VBAを使うか、表のデザインを変えて定時と時間外を別々に入れるとか、
時間や時間帯が決まってるなら計算式でなんとかするとか、方法はいくらでもあるから、
もうちょっと詳しい条件を書いてみ?
>>961 教えて頂きありがとうございました
とても参考になりました。
中途半端な知ったかぶりが一番始末に終えない・・・
>>937 何がしたいのかさっぱりワカラン。
日本語の勉強から始めた方がよかろう。
>>962 レス遅れてスミマセン
表の形式は変えてはいけないようです。
そしてとても複雑なのですが、A列は職種No.、B列は社員No.、C列は遅刻・早退D列は仕事内容、E列勤務時間を入力、F列は仕事内容、G列は勤務時間、H列は仕事内容、I列は勤務時間、J列は定時時間合計、K列は時間外、Lは定時時間合計と時間外の合計
というシートが3枚あります。
何故3枚のシートがあるかと言いますと、それぞれ仕事の部署に分けているんです。
そして入力の基本なんですが、うちは職種が変わるたびに社員No.が重複しても行を変えて入力しています。しかし、社員No.が一緒かつ職種が一緒で仕事内容が違っていれば社員No.の行(G列そしてI列)に入力します。
E列G列I列に入力した数値の合計を定時時間合計に出すのですが・・・数値が8以上なら8.00と表示して、それ未満ならE列G列I列の合計、なんですがC列に数値を入力したらその数値を差し引いた数値を表示するんです。
そして定時時間合計が8以上の場合は時間外に越えた分だけ表示するのですが、C列に数値があった場合には、定時時間合計が8を越えてなくってもC列の数値と定時時間合計を足して8を引いた数値を表示出来ればありがたいです。
これからが一番厄介なんですが、時間外だけ他の部署に移動という場合もあってもう最悪・・・
時間外だけなんですけど勤務時間に数値を入力し、これだけは時間外に表示・・・という無茶苦茶な事なんです。
だからせめて色だけでも変えたらエクセルの方もわかってくれるんじゃないかと思って質問したんです。
967 :
名無しさん@そうだ選挙にいこう :2009/10/31(土) 02:22:16
>>965 んなぁこと知るかぁ〜〜
by Excel
968 :
名無しさん@そうだ選挙にいこう :2009/10/31(土) 06:35:14
XPで、Excel 2007を使用しています。 評価項目 A B C D 例 10 20 60 20 例 50 0 32 30 例 といったようにデータをいれて、ABCDフィルタつけました。 このとき、たとえば評価項目Bについて降順について並べ替えをすると、 数値だけが並びかえられてしまいます。 これを行ごと並べ替えられるように設定したいのですが、どうすればいいでしょうか?
>>968 並び替える箇所だけを選択してやってみたらどう?
>>965 なんか簡単にできそうな感じがするが、読みづらくて考える気が起きない。
勤務表にちゃんとしたルールがあるなら、関数だけでできるでしょ。
>>965 ファイルをアップロードすれば作ってやらんでもない
あと色づけで解決というのは考えないほうがいい
>>968 ABCD列全てを選択してからデータ→並べ替え(2003の場合)
972 :
916 :2009/10/31(土) 15:19:23
<<917, 919 遅くなりましたが、ご回答ありがとうございました。
レス遅れました
>>970 そうですか・・・いつも電卓で計算して手入力しています。
>>971 すいませんがアップロードの事がよくわからないんです。
別シートにピボットで集計してそれから・・・とか考えてみたのですが、結局集計しても意味がないですしね・・・
いつも通り電卓で計算して全部手入力します
お騒がせ致しました。すいませんm(__)m
>965 これでどうでしょうか。 J列の計算式=MIN(8/24,SUM(E2,G2,I2))-C2 K列の計算式=IF(SUM(E2,G2,I2,C2)>8/24,SUM(E2,G2,I2,C2)-8/24,0) 携帯から書き込みはツライ
>>973 集計結果に対して複雑な業務ルールを適用するのは、けっこう難しいでしょ。
請求額と支払額の差額から、運賃が支払われていないことを見つけたりというような仕事を、人間はなんとなくやってのけますが、こういうの機械には難しいことなんです。
あなたの場合、勤務時間の集計をもとに8時間を越えた場合などいろいろ複雑な仕分けをしようとしていますが、発想を変えてはどうでしょう。
つまり、勤務時間を記録する時点で、時間外なのかそうでないのかを仕分けしてしまうのです。
そうすれば後は機械的に集計するだけですみますよ。
976 :
名無しさん@そうだ選挙にいこう :2009/10/31(土) 22:10:20
たしかに、必要性も何も考えずに漠然とやってることって多いからな。
アドバイスありがとう
>>974 関数を使った数式ありがとう
参考にさせて頂きます
>>975 とても参考なります。
人間の考える部分も必要ですよね。
仕訳が難しいですが、頑張ってみようと思います。
978 :
名無しさん@そうだ選挙にいこう :2009/10/31(土) 23:31:33
次スレは?
979 :
複乳 ◆MeiY43UMr. :2009/10/31(土) 23:56:14
>>973 そうか・・
まぁ、アップロードは10分でできるだろうが、毎回その業務をやるのが楽というならそうするのが良い
と言って放置するのも忍びないので
[email protected] に送ればある程度協力します。怖いなら別に送らなくて良い。
>>978 いつも980か990で立ててる
というのもアレなので立てるか
980 :
複乳 ◆MeiY43UMr. :2009/10/31(土) 23:58:52
・・立てられなかった・・テンプレだけは用意した。誰かお願いします↓
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 87
ttp://pc11.2ch.net/test/read.cgi/bsoft/1254055959/
981 :
名無しさん@そうだ選挙にいこう :2009/11/01(日) 00:44:25
>>981 ありがとうございます。
テンプレも追加しておきましたのでこのスレは気づいた人が埋めてください
このウザって書くやつみると部外者の俺でもいつもむかつくんだが、こいつなんとか始末できないかね。
>>984 「ウザ」をNGワードにすればいいじゃない
始末ってw
987 :
複乳 :2009/11/01(日) 09:54:46
988 :
複乳 :2009/11/01(日) 09:56:32
>>984 >>983 はスレを荒らす方向に持っていって埋め立てる算段だったんだろう
根はいい奴なんだよ
989 :
複乳 :2009/11/01(日) 10:02:43
生め
990 :
複乳 :2009/11/01(日) 10:05:17
埋め
お節介も
ほ
ど
が
あ
る
ん
だ
よ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。