以下はEXCELです。 A1のabcを同ブロックの13-07-31の
下(A5)にコピーするマクロをつくりたいのですが。
A7はA9にしたい。

-------A--------B
1-----abc------123
2---13-07-01--(空白)-
3----(空白)----456
4---13-07-31--(空白)-
5----(空白)---789
6-------空白行-------
7-----abc------123
8---13-07-31--(空白)-
9---(空白)---789
10-------空白行-------
以下続きます。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

補足とapril21さんの横レス(^o^)を参考にし、データとニラメッコして、下記マクロを作ってみました。


質問のデータ並びは、
(1)AとBが空白の行でページが分かれる
(2)同一ページでは取引先は1度のみ印刷し同一日付も印刷しない。
この条件でデータを眺めるとうまく理解できます。ただ、印刷イメージを画面出力したものなら1頁の固定行数に対する残り行は空白行で埋めると思うんですが・・・これが不明。そこで、
(3)質問のために余分な空白行を削除した。
としてみました。できたのが下記で、質問の形式の並びを、取引先、日付、残高に並べなおします。印刷の逆関数みたいなものですね。
(1)、(2)までならそのままで、もし(3)が当たっていれば、PageMax = 1 を1頁の印刷行数に変えてみて下さい。空白行を操作しなくてもデータをきれいに並べ直すと思います。
かなり独断で想定(想像)しています。参考程度にして下さい。

標準モジュールに貼り付け、Matome2を実行。

Public rg As Range '基準セル(A1)
Public torihikisaki As String '取引先
Public hizuke As String '日付(文字列として読み込み)
Public zandaka As Long '残高
Public rw As Long '行カウンタ(読み込み用)
Public wrRow As Long '行カウンタ(書き出し用)
Public KuuhakuGyo As Integer '空白行カウンタ
Public Const PageMax = 1 '1ページ行数 これを印刷行数にしたら!?

Public Sub Matome2()
 Set rg = Range("A1") '基準位置
 wrRow = 0: rw = 0: KuuhakuGyo = 0: Yomikomi rw
 With rg
  While KuuhakuGyo < PageMax
   If zandaka <> 0 Then
    Kakikomi 'データを書き込む
    rw = rw + 2
    While Not (.Offset(rw, 0) = "" And .Offset(rw, 1) = "")
     If .Offset(rw, 0) <> "" Then hizuke = .Offset(rw, 0)
     If .Offset(rw, 1) <> "" Then zandaka = .Offset(rw, 1): Kakikomi
     rw = rw + 1
    Wend
   End If

   rw = rw + 1: Yomikomi rw '次のブロック
  Wend
 End With
End Sub

'データを読み込む(Sub)
Public Sub Yomikomi(rowNo As Long)
 With rg
  torihikisaki = .Offset(rowNo, 0)
  hizuke = .Offset(rowNo + 1, 0)
  zandaka = .Offset(rowNo, 1)
  If torihikisaki = "" Then KuuhakuGyo = KuuhakuGyo + 1
 End With
End Sub

'データを書き出す(Sub)
Public Sub Kakikomi()
 With rg
  .Offset(wrRow, 3) = torihikisaki
  .Offset(wrRow, 4) = hizuke
  .Offset(wrRow, 5) = zandaka
 End With
 wrRow = wrRow + 1: KuuhakuGyo = 0
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
元データを簡略化して説明したので、
マクロに若干の修正が必要なようですが、
勉強いたします。
ありがとうございました。

お礼日時:2001/07/26 20:35

■訂正


E2に =IF(TYPE(MID(A2,SEARCH("??-??-??",A2,1),LEN(A2)))=16,E1,A2)
だとABCの最初の日付が違ってしまいます。
(同じ日付だったので見た目気がつきませんでした^_^;)

E2に =IF(TYPE(SEARCH("??-??-??",A2,1))=16,IF(AND(A2<>"",A3<>""),A3,E1),A2)

こんな感じで都合の悪い点は条件を追加してあげれば良いと思いますので
適当に変更してください。m(__)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
勉強して理解します。

お礼日時:2001/07/26 20:36

>>外部データから取り込む際に振り分けてしまってはどうでしょう


>何か本をご紹介賜れば幸甚です。
何の本でしょう?VBAのでしょうか?でしたら、VBAにヘルプがあるので
本は持っていないのですみませんがお力にはなれません。
本屋さんに行って必要なことが載ってるかどうか確かめて購入された方が
良いのでは?

>ホストのデータを帳票として画面に出して、その画面を
>ベースにデータとして取り込んだものです。
これだけではちょっと分からないので例題を関数で振り分けてみますね。

例題を一行ずらして(A2、B2が一行目)にして
2コ目のabcをABC(分かりやすいように)に変更。

D2に =IF(AND(A2<>"",A3<>""),A2,D1)
E1に =A3
E2に =IF(TYPE(MID(A2,SEARCH("??-??-??",A2,1),LEN(A2)))=16,E1,A2)
F2に =IF(B2="","",B2)

で、D2からF2まで選択してD11までフィルドラッグ
選択して「データ」-「オートフィルタ」で残高の▼をクリックして
「空白以外のセル」をポイント。
下記のようになってるはずなのでコピーして適当な所に貼付け。

abc 13-07-01 123
abc 13-07-01 456
abc 13-07-31 789
ABC 13-07-31 123
ABC 13-07-31 789

関数ですからどういうことをしてるか分かりますよね?
分からない関数はヘルプで調べてみてください。
意味がわかればご自分で変更して使えると思います。
    • good
    • 0

nishi6さん こんばんわ^^



ちょっと横レス失礼します。m(__)m
>また、データの持ち方が一行になく行列に持っていますので苦労しています。
データベースのデータをEXCELで取り込んで苦労されてるのでは?

推測があってるなら見た感じでは文字列、数値、日付のデータのように思われる
ので外部データから取り込む際に振り分けてしまってはどうでしょう?
その方が簡単だと思いますが・・・。

では、(^^)/~~~
    • good
    • 0
この回答へのお礼

その通りです、Excelで取り込んで苦労しています。
dataが一行に並んでいて
例)取引先  日付   残高
  QQQ  YYMMDD 111111
であればexcelでもアクセスでも何とか使えるのです
が、縦に並ぶと手も足もでません。

>外部データから取り込む際に振り分けてしまってはどうでしょう
何か本をご紹介賜れば幸甚です。

お礼日時:2001/07/18 08:27

>設定では先頭の文字のコピーにしましたが、その一行下の場合はどうでしょうか?



下記のように若干変更すればできます。13-07-01を貼り付けるんですよね。
Public Sub AtaiHarituke2()
Dim rg As Range 'セル
Dim rw As Long '行カウンタ
Dim Atai As String '先頭の値
Dim Atai2 As String '貼り付ける値

Set rg = Range("A1") '基準位置

With rg
Atai = .Offset(rw, 0)
While Atai <> "" 'なくなるまで続ける
rw = rw + 1
Atai2 = .Offset(rw, 0)
While Not (.Offset(rw + 1, 0) = "" And .Offset(rw + 2, 0) = "")
rw = rw + 2 'ブロックの最終行でなければ次へ
Wend
.Offset(rw + 1, 0) = Atai2 '値を貼り付け

rw = rw + 3 '次のブロック
Atai = .Offset(rw, 0)
Wend
End With
End Sub


>また、データの持ち方が一行になく行列に持っていますので苦労しています。

チョッと意味を計りかねますが、一連のプロックが横に連なっている?意味ですか。この質問のデータの並びはそれを加工したものですか?
考え方によっては、データが文字列として整然と並んでいたほうが(あるパターンで)処理しやすいかもしれません。どのような形式でもデータの並びに規則性があればプログラム処理する上では問題ないと思います。

この回答への補足

ありがとうございます。お中元をお送りしたい気分です。
ホストのデータを帳票として画面に出して、その画面を
ベースにデータとして取り込んだものです。
<どのような形式でもデータの並びに規則性があればプログラム処理する上では問<題ないと思います。
そうなんでしょうね。
でも私レベルには大変です。

補足日時:2001/07/18 08:28
    • good
    • 0

質問の意味を理解していればいいのですが・・・・


各ブロックの先頭の文字は2つを見る限り「abc」ですが、「abc」と一致したら貼り付ける意味でしょうか?
下記マクロは「abc」に限らず、ブロックの先頭文字を最終行に貼り付けます。
意味が違っていたら補足して下さい。

標準モジュールを追加して貼り付けます。
Public Sub AtaiHarituke()
Dim rg As Range 'セル
Dim rw As Long '行カウンタ
Dim Atai As String '貼り付ける値

Set rg = Range("A1") '基準位置

With rg
Atai = .Offset(rw, 0)
While Atai <> "" 'なくなるまで続ける
rw = rw + 1
While Not (.Offset(rw + 1, 0) = "" And .Offset(rw + 2, 0) = "")
rw = rw + 2 'ブロックの最終行でなければ次へ
Wend
.Offset(rw + 1, 0) = Atai '値を貼り付け

rw = rw + 3 '次のブロック
Atai = .Offset(rw, 0)
Wend
End With
End Sub
    • good
    • 0
この回答へのお礼

いつも、ありがとうございます。
設定では先頭の文字のコピーにしましたが、
その一行下の場合はどうでしょうか?

また、データの持ち方が一行になく行列に
持っていますので苦労しています。
また質問したときはよろしくお願い致します。

お礼日時:2001/07/17 21:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qdj Emersonについて

Darren Emersonとは別の人なんですか?

Aベストアンサー

Dj Emerson(本名Simon Emerson Kidder)はドイツ人のDjで、Darren Emersonとは別人です。彼自身、自分のレーベルを設立しており、そこからCDをリリースしています。
URLを載せておいたのでよければ参照してください

参考URL:http://www.emerson.de

QExcelで05-09-26 13:27を2005年9月26日13時27分と認識させたい

A2セルに「05-09-26 13:27」、A3セルに「05-09-30 9:40」、A4セルに「05-10-01 15:35」の様に日時を表す文字列が入ってずーっと下のセルまで続いています。
今の状態だと単なる文字としてしか認識されませんが、これをExcelが日時として認識できる(セルの書式設定を数値にすればシリアル値で表示される状態)ようにするには、どうすれば良いでしょうか?

Aベストアンサー

こんにちは~

次のようにしてみてください。

・A列をすべて選択
・メニューの「データ」-「区切り位置」
・下の<次へ>を 2回クリックして 3画面目へ
・3画面目の「列のデータ形式」を<日付>にして「完了」で、日付データに変換されます。

QEmerson Pughという人が言ったたった一文を翻訳

Emerson Pughという人が言った一文が訳せそうで訳せません。
この人が何者だか分かりませんが、人工知能に関する本に書かれていた一文です。

If the human brain were so simple that we could understand it, we would be so simple that we couldn't it (1977).

もしヒトの脳が私たちが理解できるほど単純だったとすれば、
私たちはとても単純だろう、それ(私たちが脳を理解すること)ができないほど。

と訳してみました。
うーん、意味が分かりません。矛盾してます。
分かる方、平たい和訳または解釈をお願いします。

哲学のカテで質問した方がいいのかなぁ…。

Aベストアンサー

>If the human brain were so simple that we could understand it, we would be so simple that we couldn't it (1977).

couldn'tの次に、動詞がないですが
みなさんの仰る様な原文だとするとunderstandもしくはdoが入って
couldn't understand it
と考えていいかと思います。

>If the human brain were so simple that we could understand it,

の前半部分は、so ~ thatの構文になっていますので
[もし、人間の頭脳が、我々が理解出来る程に、単純であったならば]
と云う仮定部分を示します。

>we would be so simple that we couldn't do it .

ginkoさんの文章に忠実に考えてみますと、
ここでもso ~that 構文になっていて、
so simple that we couldn't do it
大変シンプルなので、我々はそれができない、となります。
we would be so simpleの部分では、我々はとても単純であるだろう、と仮定部分を受けるので
[我々は、大変単純なので、それが(理解)できないだろう]
となりますね。

[もし、人間の頭脳が、我々が理解出来る程に、単純であったならば、我々は、大変単純なので、それが(理解)できないだろう]


#2さん#3さんの引用のとおり、
too simple to unrderstand
[単純すぎて理解できない]
と云う事になるかと思います。

>If the human brain were so simple that we could understand it, we would be so simple that we couldn't it (1977).

couldn'tの次に、動詞がないですが
みなさんの仰る様な原文だとするとunderstandもしくはdoが入って
couldn't understand it
と考えていいかと思います。

>If the human brain were so simple that we could understand it,

の前半部分は、so ~ thatの構文になっていますので
[もし、人間の頭脳が、我々が理解出来る程に、単純であったならば]
と云う仮定部分を示します...続きを読む

QExcelの列記号がABC・・・ではなく123になってしまう

Excel2003を立ち上げると,普通は列の記号がA,B,C・・・・,行の番号が1,2,3・・・・となり,セルは「A3」とか「H12」のように表されますよね。ところが,たまに列の記号も1,2,3・・・・になることがあります。別に設定を変えているわけでもなく,いつもじゃなくてたまになるところがとても不思議です。何度かソフトを終了させて,また新たに立ち上げてみると,A,B,C・・・に戻ったりします。もちろん何か理由があるのだと思うので,ご存知の方,1,2,3・・・にならない対処法を教えて下さい。よろしくお願いします。

Aベストアンサー

「ツール」→「オプション」→「全般」タブ
にある、
「R1C1参照形式を使用する」
にチェックが入っていると列も数字になります。

※ならない方法は判りません。
※なったときの解除方法です。

QRGBからHSLのSを求める計算式。(MAX-MIN)/(1-|MAX+MIN-1|)

RGBからHSLのSを求めたいのですが、(MAX-MIN)/(1-|MAX+MIN-1|)部分が良く分かりません。
https://ja.wikipedia.org/wiki/HLS%E8%89%B2%E7%A9%BA%E9%96%93

例えば、下記で、89.3はどうやって導き出すのでしょうか?
・RGB Decimal 12, 213, 101
・HSL 146.6°, 89.3, 44.1

MAX-MIN
・213-12=201

MAX+MIN-1
・213+12-1=224

1-|MAX+MIN-1|
・-223

(MAX-MIN)/(1-|MAX+MIN-1|)
・201/-223=-0.90

Aベストアンサー

Wikipediaのは 0≦ R,G,B,S,L ≦1.0 (つまり0〜100%) のときの式では?

0〜255というのは、0〜100%の実数をコンピュータで扱うのに便利な8bit整数に変換したもので、
理論的な話をするなら、0〜100%の実数のままで扱うことが多いです。

・RGB 12/255, 213/255, 101/255
・HSL 146.6°, 89.3%, 44.1%

S=(MAX-MIN)/(1-|MAX+MIN-1|)
=(213/255-12/255)/(1-|213/255+12/255-1|)
=0.893...
=89.3%

L=(MAX+MIN)/2
= ((213/255)+(12/255))÷2
= 0.441..
=44.1%


※ 0≦ dR,dG,dB ≦ m のとき、dR,dG,dBの最大値をdMAX,最小値をdMINとすると
R=dR/m
G=dG/m
B=dB/m
MAX=dMAX/m
MIN=dMIN/m
となります。

Hの式では分子と分母のmが約分されるので、 dX のまま計算しても同じ値が出ます

S=(MAX-MIN)/(1-|MAX+MIN-1|)
=(dMAX/m-dMIN/m)/(1-|dMAX/m+dMIN/m-1|)
=(dMAX-dMIN)/(m-|dMAX+dMIN-m|)

L=(MAX+MIN)/2
=(dMAX+dMIN/m)/2
=(dMAX+dMIN)/2m

精度やパフォーマンスを考えて、プログラムではこちらの式で記述されていることがあります。

Wikipediaのは 0≦ R,G,B,S,L ≦1.0 (つまり0〜100%) のときの式では?

0〜255というのは、0〜100%の実数をコンピュータで扱うのに便利な8bit整数に変換したもので、
理論的な話をするなら、0〜100%の実数のままで扱うことが多いです。

・RGB 12/255, 213/255, 101/255
・HSL 146.6°, 89.3%, 44.1%

S=(MAX-MIN)/(1-|MAX+MIN-1|)
=(213/255-12/255)/(1-|213/255+12/255-1|)
=0.893...
=89.3%

L=(MAX+MIN)/2
= ((213/255)+(12/255))÷2
= 0.441..
=44.1%


※ 0≦ dR,dG,dB ≦ m のとき、dR,dG,dBの最大値をdMAX,最...続きを読む

QExcelを新規で開くと、列が「ABC~」でなく「123~」で出てきま

Excelを新規で開くと、列が「ABC~」でなく「123~」で出てきます。

「A1」セルは「R1C1」セルとなってしまいます。

元に戻したいのですが、どうしたらよいでしょうか。

Aベストアンサー

「ツール」→「オプション」→「全般」タブ→「設定」項目→「R1C1 参照形式を使用する」のチェックを外す。

Qini_setのpost_max_size

お世話になります。

ini_setの「post_max_size」がなぜか正常に動作しません。「upload_max_filesize」はうまく動作するのですが・・・。

---------------------------------------------
$aaa = ini_set("upload_max_filesize","2M");
$bbb = ini_get("upload_max_filesize");
$ccc = ini_set("post_max_size","3M");
$ddd = ini_get("post_max_size");
---------------------------------------------

↑これを実行すると以下のように表示されます。

---------------------------------------------
aaa=16M
bbb=2M
ccc=
ddd=8M
---------------------------------------------

本来「ccc=8M」、「ddd=3MB」となるはずなのですが..。$cccを単体で実行してもうまくいきません。
上記から分かりますように、実行環境のphp.iniの設定は、

memory_limit = 64M
post_max_size = 8M
upload_max_filesize = 16M

となっています。マニュアルには

「memory_limit >= post_max_size >= upload_max_filesizeでなければならない」

とありますので、実際は「upload_max_filesize」を「post_max_size」の8M以下に設定し直さなければならないとは思うのですが、これがini_setがうまくいかない原因になり得るでしょうか?

何かご存知の方がいらっしゃいましたら教えて下さい。PHPのバージョンは4.2.2です。

お世話になります。

ini_setの「post_max_size」がなぜか正常に動作しません。「upload_max_filesize」はうまく動作するのですが・・・。

---------------------------------------------
$aaa = ini_set("upload_max_filesize","2M");
$bbb = ini_get("upload_max_filesize");
$ccc = ini_set("post_max_size","3M");
$ddd = ini_get("post_max_size");
---------------------------------------------

↑これを実行すると以下のように表示されます。

-----------------------------------------...続きを読む

Aベストアンサー

えーと、回答にはならないかも知れませんが、とりあえずわかっている事だけを。
post_max_sizeやupload_max_filesizeはini_setでは設定できません(PHPのini_setのマニュアル参照の事)。
なので、正確にはpost_max_sizeの方が正しく動作しています。
upload_max_filesizeが、なぜこういう動作をしているのかは、わかりませんが...。

Qエクセルで「20050507」のセルを「2005-05-07」に変換したい。

日付欄に文字列[20050507]とあるのを日付モード
[2005-5-7]に変換したいのです。

Aベストアンサー

A1セルに20050507が入っているとします。
B1セルに

=DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))

と入力すると、日付に変えることが出来ると思います。

その上で「セルの書式設定」>「表示形式」>「ユーザ定義」で

yyyy-m-d

としてみてはどうでしょうか?

その後、B列を選択して「編集」>「コピー」を選び、続けて「編集」>「形式を選択して貼り付け」で「値」を選んで貼り付けた後、A列を削除すれば、元の位置に表示させられると思います。

QMAXシリーズの曲目と歌手

皆様いつもお世話になっております。

洋楽で『MAX』シリーズが発売されていますよね。
Ballad MAX , MAX~MAX7 などでしょうか。
その全MAXシリーズの曲名とアーティスト名を公開しているサイトはご存知ありませんか?
知っていらっしゃる方、教えてください。
お願いします。

Aベストアンサー

AMAZON.CO.JPで公開してますね。

ちなみに、MAX7のURLは下記の通りhttp://www.amazon.co.jp/exec/obidos/ASIN/B00005R6I4/qid=1012280548/sr=1-1/ref=sr_1_2_1/250-8554801-4265866

Q「ABC1」→「ABC01」としたい

取引先の会社からエクセルファイルをいただく時に
ABC1
ABC2
~~~~
ABC10
ABC11
のようなデータなので並べ替えをすると
ABC1
ABC10
ABC11
~~~~~
ABC2
ABC20

という風になってしまうので、1桁の数字には0を入れたいのですが
どうすればよろしいのでしょうか?
(ABCというところは品番で、他にもDEF,GHIなどと他の品番が混ざって入っているため、並び替えがしたいのです)

過去ログ、エクセル質問サイトなどを見たのですが
どのカテゴリーの作業なのかわからず探すのが難しかったので
質問させて頂きました。お願いします

Aベストアンサー

提示の例では、頭3桁がローマ字、残りの桁が数字になってますが、

頭のローマ字部分の桁が、3桁未満とか4桁以上ある場合や

  A1______> A01
  AB2_____> AB02
  ABC3____> ABC03
  ABCD4___> ABCD04

頭のローマ字部分に数字が混ざっている場合

  A5Y4____> A5Y04
  AB5Y4___> AB5Y04

なども考慮して、一案。

A2からデータがある場合、以下を必要な分だけコピー

=IF(ISERROR(VALUE(RIGHT(A2,2))),LEFT(A2,LEN(A2)-1) & "0" & RIGHT(A2,1),A2)


こういった類の質問をする時は、
ABC1、ABC2 とかではなくて、実際のものをいくつか提示し、
それについてローマ字部分の桁は固定だとかそうでないとかなどの
補足情報を具体的に提示した方がベターかと。。。
 


人気Q&Aランキング

おすすめ情報